0

我正在用 C# 开发,并且正在处理来自外部肥皂调用的 xml。我已将 xml 响应加载到 XElement 中。

给定以下 xml 存根

<record>
   <node>
       <a>My title</a>
       <name>title_en</name>
   </node>
   <node>
      <a>...</a>
      <name>contact_name</name>
   </node>
   .....
</record>

在 C# 中使用 xpath:我在使用方法 XPathSelectElement 时尝试执行以下操作。

在哪里

\record\node\name == 'title_en' select \record\node\a

如果有更好的方法可以使用或关于如何执行查询的其他建议,我愿意接受。

提前致谢。

4

2 回答 2

2

您需要一个谓词来限制您需要哪些节点元素:

/record/node[name = 'title_en']/a

您将此表达式读作“查找记录元素,查找其所有命名为具有值为“title_en”的子元素的子元素nodename并为每个元素找到所有子元素a

于 2012-12-14T00:03:21.173 回答
1

用这个:

var title = doc.Descendants("node")
               .Where(x => (string)x.Element("name") == "title_en")
               .Select(x => (string)x.Element("a"))
               .FirstOrDefault();
于 2012-12-13T13:35:44.927 回答