2012-08-06 100 views
1
<config> 
<timeDifferenceFields> 
    <TimeDifference> 
     <StartTimeField>txt_SoReinigungUhrzeitvonZ1</StartTimeField> 
     <EndTimeField>txt_SoReinigungUhrzeitbisZ1</EndTimeField> 
     <OutputTimeField>txt_SoReinigungZ1</OutputTimeField> 
    </TimeDifference> 
    <TimeDifference> 
     <StartTimeField>txt_SoReinigungUhrzeitvonZ2</StartTimeField> 
     <EndTimeField>txt_SoReinigungUhrzeitbisZ2</EndTimeField> 
     <OutputTimeField>txt_SoReinigungZ2</OutputTimeField> 
    </TimeDifference> 
    <TimeDifference> 
     <StartTimeField>txt_SoReinigungUhrzeitvonZ3</StartTimeField> 
     <EndTimeField>txt_SoReinigungUhrzeitbisZ3</EndTimeField> 
     <OutputTimeField>txt_SoReinigungZ3</OutputTimeField> 
    </TimeDifference> 
</timeDifferenceFields> 
</config> 

嗨,如何檢索XML嵌套的元素與C#的元素值

有人可以幫我這個簡單的任務,我不明白它...

我想遍歷TimeDifference-Fields在上述XML文件中。對於每個TimeDifference節點,我想用給定的XML值調用一個方法。

有了這個運行到NPE ...有人可以幫助請

 XmlDocument configDoc = new XmlDocument(); 
     configDoc.Load(configXml); 

     XmlNode timeFields = configDoc.SelectSingleNode("/config/timeDifferenceFields/TimeDifference"); 
     foreach (XmlNode timeNode in timeFields) 
     { 
     String OutputTimeField = timeNode.SelectSingleNode("OutputTimeField").InnerXml; 
     String StartTimeField = timeNode.SelectSingleNode("StartTimeField").InnerXml; 
     String EndTimeField = timeNode.SelectSingleNode("EndTimeField").InnerXml; 
     addTimeDiffElement(inputDoc, OutputTimeField, StartTimeField, EndTimeField); 
     } 
+0

http://stackoverflow.com/questions/825459/recursively-reading-an-xml-document-and-using-regex-to-get-contents – 2012-08-06 00:59:54

回答

1

SelectSingleNode返回(顧名思義)不超過一個節點。改爲嘗試使用XmlNodeList timeFields = configDoc.SelectNodes("/config/timeDifferenceFields/TimeDifference")