假设我想返回包含XPath的值“/ Tier1 / Tier2 / Setting [Name = aUniqueName] / theValue”
我正在使用XDocument,所以我可以使用linq,但有没有通过正确的错误检查获得此值的简短方法?我能想到的只是获取每一层,检查每一层是否为空,然后进入下一层并重复 - 这似乎比在XmlDocument中使用单行XPath要多得多。
答案 0 :(得分:4)
您可以将XPath与XDocument
一起使用。使用XPathSelectElements
方法。
答案 1 :(得分:1)
这是一个LINQ查询,它将为您完成:
var query =
from t2 in xd.Root.Elements("Tier2")
from s in t2.Elements("Setting")
where s.Attributes("Name").Any(a => a.Value == "aUniqueName")
select s.Value;
这假设您的文档结构如下所示:
<Tier1>
<Tier2>
<Setting Name="aUniqueName">theValue</Setting>
</Tier2>
</Tier1>