我正在使用C#开发,并且正在从外部soap调用处理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
如果有更好的使用方法或其他建议如何预先形成查询,我愿意接受。
提前致谢。
答案 0 :(得分:2)
您需要谓词来约束您需要的节点元素:
/record/node[name = 'title_en']/a
您将此表达式读作“查找记录元素,找到名为node
的所有子元素,其中name
子元素值为”title_en“,并且每个元素都找到{{1}儿童“
答案 1 :(得分:1)
使用此:
var title = doc.Descendants("node")
.Where(x => (string)x.Element("name") == "title_en")
.Select(x => (string)x.Element("a"))
.FirstOrDefault();