日期:2014-05-18  浏览次数:20804 次

解析xml,为何读取不到子节点的值?
现在有一段xml的局部如下:
XML code

- <props>
  <prop name="DocumentTypeDesc" type="10">Herry</prop> 
  <prop name="client_data" type="10" /> 
  <prop name="isInteract" type="3">false</prop> 
  <prop name="max_versions" type="1">4</prop> 
  <prop name="SSN" type="10">371248104</prop> 
- </props>
- <props>
  <prop name="DocumentTypeDesc" type="10">Tansion</prop> 
  <prop name="client_data" type="10" /> 
  <prop name="isInteract" type="3">false</prop> 
  <prop name="max_versions" type="1">4</prop> 
  <prop name="SSN" type="10">158345561</prop> 
- </props>



我想获得:所有的,标签为<prop>,而且属性name="SSN"的元素,它们的值。

我写的代码如下:
C# code

XmlDocument document = new XmlDocument();
document.Load(@"D:\Collection.xml");//导入能成功
XmlNodeList nodes = document.GetElementsByTagName("prop");
foreach (XmlElement singlenode in nodes)
{
if(singlenode.GetAttributeNode("name").Value.ToString().Equals("SSN"))
 {
 Console.WriteLine("{0}",singlenode.Value);
 }
}


但发现根本取不到值,都是null。

请问大家该如何改正代码?

------解决方案--------------------
C# code
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(@"c:\test.xml");
        XmlNodeList nodes = xmlDoc.SelectNodes(@"//prop[@name='SSN']");
        foreach (XmlNode node in nodes)
            Console.WriteLine(node.InnerText);
        Console.ReadKey();

------解决方案--------------------
singlenode.Value-->singlenode.InnerText