我正在为学校创建一个ping应用程序,其中包含一个充满URL的XML.我失去了一个小时,因为XmlNode.Value导致了空.
然后我把它改成了InnerText,它工作得很好.
现在我想知道有什么区别,因为MSDN说.Value返回节点的值并InnerText返回节点及其所有子节点的连接值.
有人可以帮我解释一下吗?
<sites>
<site>
<url>www.test.be</url>
<email>test@test.be</email>
</site>
<site>
<url>www.temp.be</url>
<email>temp@temp.be</email>
</site>
<site>
<url>www.lorim.ipsum</url>
<email>interim.address@domain.com</email>
</site></sites>
Run Code Online (Sandbox Code Playgroud)
Rob*_*evy 85
例如,如果你的XML看起来像<Foo>Bar</Foo>那么"Bar"实际上被认为是一个单独的节点:一个XmlText节点(从中分类XmlNode).该节点的Value属性为XmlText"Bar".
"Foo"被认为是XmlElement(也属于XmlNode).XmlNode.Value根据节点的类型返回不同的东西.请参见本表这表明Value总是返回null的Element节点.
的InnerText,因为它会将其子女的值(在这种情况下,只有一个foo的节点返回"栏" XmlText节点).
小智 7
我有类似的情况.我做的是,我选择了当前节点的第一个子节点并检查它是否是XMLtext,然后显示其值.
XmlNodeList xNList = xDOC.SelectNodes("//" + XMLElementname);
foreach (XmlNode xNode in xNList)
{
if (xNode.ChildNodes.Count == 1 &&
xNode.FirstChild.GetType().ToString() == "System.Xml.XmlText")
{
XMLElements.Add(xNode.FirstChild.Value);
}
else
{
XMLElements.Add("This is not a Leaf node");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58714 次 |
| 最近记录: |