我是一个蹩脚的Xpath初学者,我希望用以下结构解析一个网站
<dl class="ismSummary ismHomeSummary">
<dt>cat1</dt>
<dd>value1</dd>
<dd>value2</dd>
<dt>cat2</dt>
<dd>value1</dd>
<dd>value2</dd>
</dl>
使用Xpath,我只想获得cat1的value1&value2(cat1的dd
)
这就是我现在拥有的
^{pr2}$
问题是它不会在cat2停止,并继续从cat2选择value1和value2。:(
Tags:
尝试:
使用:
假设
//dt[. = 'cat1']
和//dt[. = 'cat2']
各自只选择一个元素,那么上面的表达式正好选择想要的两个dd
元素。基于XSLT的验证:
^{pr2}$当此转换应用于所提供的XML文档时(修改了最后两个
dd
的值,以便我们确定所需的元素被选中):计算XPath表达式并将其选择的节点复制到输出:
说明:
这里我们使用的是XPath 1.0中的节点集交集的kayesian方法:
两个节点集
$ns1
和$ns2
的交集:在我们的例子中,我们用代替
$ns1
:我们用代替
$ns2
:这里的所有节点都是
dl
的子节点,因此自然所有节点都是第一个dt
的同级节点,因此当您使用following-sibling
时,您可以获得所有这些节点。在Xpath是考虑到xml的,在xml中,您可能会将
dd
元素作为dt
的子元素,但不幸的是,这里不是这样。在最简单的方法是只包含
dt
(不仅仅是dd
)的所有同级,然后迭代结果集,直到出现dt
。使用Xpath函数做同样的事情是可能的,但肯定更复杂。在相关问题 更多 >
编程相关推荐