2014-01-25 6 views
0

당신의 도움이 필요합니다. XML에 익숙하지 않아 속성을 가져올 필요가 있습니다.XmlNode 속성

나는 다음과 같은 InnerXml로 표시되는 사서함 (있는 XmlNode)가

<Mailbox Id="1" Name="[email protected]" />

내가 코드

mailbox.Attribute["Id"].Value 

의 조각을 사용하여 Id 특성에 액세스해야하지만이 null 발생 참조 예외. 나는 내가

.... mailbox.Attribute [ "ID"]를 변경할 수 없기 때문에, 어떤 해결책을 발견하지 않았습니다. 코드의 가치 ..... 일부

수 누구 도와 줘?

XmlReader reader = XmlReader.Create("Your_XML_Path"); 
string id; 
    while (reader.Read()) 
     { 
      if (reader.NodeType == XmlNodeType.Element) 
      { 
       if (reader.Name == "Mailbox") 
       { 
        id = reader.GetAttribute(0); 
       } 
      } 
     } 

코드

이 조각 같은 것을 사용

+0

붙인 코드는 InnerXml 또는 OuterXml을 나타 냅니까? InnerXml을 나타내는 경우 OuterXml에있는 내용을 표시 할 수 있습니까? –

+3

어떻게'mailbox'에 대한 참조를 얻습니까? –

+0

('Id'에 대소 문자를 구분하는 것에 대한 제 의견을 철회했습니다. 글꼴이 나를 오해하게 만들었으므로 사용 된 수도처럼 보입니다.이 경우 Wiktor의 질문이 목표라고 생각합니다. 사서함이 무엇 이건간에 ''요소 (적어도 네임 스페이스 문제는 아니며 속성은 기본 네임 스페이스를 사용하지 않습니다.) – keshlam

답변

1

봅니다이 시도하고 u는 의심이 있거나 있으면 알려 주시기 만약 당신이 코드 나던 작동합니다.

0

그래, 그래서 내가 OuterXml을 (차이가있어 실제로 몰랐다) 확인이 작동하지 않은 이유였다

<Mailboxes><Mailbox Id="1" Name="[email protected]" />... 

. 그래서 지금 사용

mailbox.SelectSingleNode("//Mailboxes/Mailbox").Attributes["Id"].Value

모든 것이 제대로 작동합니다.