2012-05-28 4 views
3

내 XML 데이터는 다음과 같습니다비슷한 노드 이름의 XmlDocument를 사용하여 XmlNodes 데이터를 얻는 방법은 무엇입니까?

<response> 
<result name="response" numFound="2" start="0"> 
<doc><str name="Author">ALi Ahmadi</str><int name="BookID">1904</int><str name="Title">BookName 1</str></doc> 
<doc><str name="Author">Reza Javadi</str><int name="BookID">1523</int><str name="Title">BookName 2</str></doc> 
</result> 
</response> 

내 C# 코드는 다음과 같습니다

XmlDocument XmlDoc = new XmlDocument(); 
XmlDoc.LoadXml(ResultData); 

XmlNodeList XnList = XmlDoc.SelectNodes("/response/result/doc"); 
foreach (XmlNode Xn in XnList) 
{ 
    string a = Xn["str"].InnerText; 
    string b = Xn["int"].InnerText; 
    string c = Xn["str"].InnerText; 
    //string c = Xn["str[@name='Title']"].InnerText;//error ! 
} 

& C의 결과는 다음과 같습니다 "알리 아흐 마디"전 C 변수에 "bookname과 1"을 얻을 수 있습니까? 당신이 노드의 인덱스를 알고있는 경우

+0

문서는 특성으로, 3 요소 - STR있다 Name = AttributeName = "BookID"이고 속성 이름이 "Title"인 str 인 "Author"는 int입니다. 그 자체로 ALMOST 의사 코드입니다.) –

+0

저자 및 타이틀 콘텐츠를 얻으려면 어떻게해야합니까? –

+0

왜 한 문서 요소에 두 개의 태그 'str'을 사용 했습니까? –

답변

2

시도 '제목' 당신이이 코드를 통해 inerrHTML있어 얻을 수 있습니다 :

 c = Xn.ChildNodes[2].InnerText; 
+0

괜찮아요, 고마워요 –

+0

도와 드릴 수있어서 기쁩니다! –

0

string c = Xn["str"].Attributes["Title"].Value 
+0

잘못되었습니다 : (오류 : 객체 참조가 객체의 인스턴스로 설정되지 않았습니다.) –

+0

속성 [ "제작자"]를 확인하십시오. 값이 대신 지정됩니다. 예 : Xn [ "str [@ name = 'Title']"]. 값 –

+0

동일한 오류가 발생했습니다 ... –

관련 문제