2

为什么这个 xpath 不适用于我?我想要电流title,如果language _id =2

./title[language_id=2]

<news pnumber="1" id="1"><event_id>578</event_id><event_type_id>1</event_type_id><language_id>2</language_id><title>meeting</title></news>



<news pnumber="1" id="1"><event_id>578</event_id><event_type_id>1</event_type_id><language_id>1</language_id><title>meeting</title></news>
4

3 回答 3

3

正确的 XPath 表达式是

//title[../language_id=2]
于 2012-03-06T10:29:19.280 回答
2

为避免反向轴,请使用

self::*[language_id=2]/title.
于 2012-03-06T13:42:53.570 回答
1

首先将根添加到您的 XML 中,然后:

XDocument doc = XDocument.Load(xmlFilePath);

var result=  doc.Descendants("news")
             .Where(x=>x.Attribute("id") != null && x.Attribute("id").Value = "1")
             .Select(x=>x.Descendants("title").First().Value);

这是这个 linq2xml 的描述:

首先加载 XML 文件(也可以解析 xml 字符串):

XDocument.Load(xmlFilePath);

找到你的news元素:

doc.Descendants("news")

news元素之间选择具有id=1:

Where(x=>x.Attribute("id") != null && x.Attribute("id").Value = "1")

从每个过滤的项目中选择第一个标题:

x.Descendants("title").First().Value
于 2012-03-06T10:22:42.050 回答