【发布时间】:2015-12-14 17:14:33
【问题描述】:
我在尝试获取具有 Home 和 Auto 值的节点时出错。 任何帮助表示赞赏。
XElement coverage = vehicle.XPathSelectElement("s0:VehicleCoverage/s0:Coverages/[CoverageLimitName=('Auto' |'Home')]", namespaceManager);
我喜欢抓取下的节点
<Coverages>
<Coverage>
<CoverageLimitName>Home</CoverageLimitName>
<OptionalCode1>WY</OptionalCode1>
<OptionalCode2>Bodily Injury</OptionalCode2>
</CoverageLimitValue>
<Premium>166.00</Premium>
</Coverage>
<Coverage>
<CoverageLimitName>Auto</CoverageLimitName>
<CoverageLimitValue>
<OptionalCode1>T</OptionalCode1>
<OptionalCode2>Property Damage</OptionalCode2>
</CoverageLimitValue>
<Premium>88.00</Premium>
</Coverage>
<Coverage>
</Coverage>
....
</Coverage>
</Coverages>
我只想使用 xpath,并希望在 CoverageLimitName 为 home 和 auto 时获取整个覆盖率标签
【问题讨论】:
-
请编辑您的问题,并根据您显示的 XML 文档显示您对 XPath 表达式结果的期望。此外,表达式和文档相互矛盾,因为 XPath 表达式中有前缀元素名称,但文档中没有。
-
是的,正如@MathiasMüller 所说,包含在命名空间和结构方面正确的 XML 文档,否则我们只能猜测正确的结构。
-
此外,您的 XML 实际上是无效的,因为它在问题中显示 - 第一个
Coverage元素有一个结束CoverageLimitValue标记,但没有开始标记。以发布带有无效 XML 的问题为例,人们很难为您提供帮助。 -
@MathiasMüller:编辑了问题