我正在为学校创建一个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 次 |
最近记录: |