【发布时间】:2014-09-15 10:08:57
【问题描述】:
我有一个像这样的元素结构:
<template>
<x name="foo">
<y>
<x>
<a>
<b number="1" />
<c>2</c>
</a>
</x>
<c>5</c>
</y>
</x>
</template>
我需要它以便b 元素只能存在于a 中,只要其中一个祖先是带有名称的x。我写了一组替代方案,但我无法让测试正常工作。这就是我认为可行的方法:
ancestor::x[@name]
但我没有得到任何结果。我唯一幸运的 xpath 是这样的:
ancestor::node()
谁能告诉我我错过了什么?
编辑:
我正在使用 java xerces 2.11 库来加载包含标签的 xsd 文件。
【问题讨论】:
-
嗯...这个 XPath 能够返回给定 XML 发布的结果:
//b[ancestor::x[@name]] -
ancestor::x[@name]应该在正确的上下文中工作。您可能需要显示更多上下文,以便我们解决问题。
标签: java xpath attributes xerces ancestor