【问题标题】:XML Descendants v/s Child NodeXML 后代与子节点
【发布时间】:2012-03-06 19:33:26
【问题描述】:

我有这个 XML

<globalSettings>
<a>V1</a>
<b>V2</b>
<test>TestValueGlobal</test>
</global>
<block name="one">
<name>V2</name>
<test>TestValueOfBlock1</test>
</block>
</globalSettings>

doc = XDocument.Parse(xml);

我想从&lt;globalSettings&gt; 获取&lt;test&gt; 的值,但&lt;test&gt; 并不总是存在。现在,我有 doc.Descendants("test").FirstOrDefault() 但它可以从&lt;block name="one"&gt; 中给我&lt;test&gt; 的值

我该如何解决这个问题?

谢谢! 回复

【问题讨论】:

  • 您是否缺少一些 XML?它的格式不正确,也没有&lt;globalSettings&gt; 元素。
  • 更新了!添加了正确的结尾。

标签: xml linq-to-xml


【解决方案1】:

试试

doc.XPathEvaluate("string(/globalSettings/test)");

如果&lt;test&gt; 不存在,它应该返回&lt;test&gt; 的值或一个空字符串。

【讨论】:

  • 刚刚发现使用 Elements 而不是 Descendants 会给我直接的子节点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多