Php Xpath - 如何获得特定值?

时间:2012-08-30 18:27:40

标签: php xpath

如何使用php xpath从字母串中获取货币值?

<div class="detalheDir2">
<div class="preco">
R$
<script type="text/javascript">document.write(aZ427014992694557())</script>
24,90
</div>
</div>

我想得到24,90

我正在使用查询

$xpath->query("descendant::div[@class='detalheDir2']/div[@class='preco']/text()", $child);

1 个答案:

答案 0 :(得分:1)

如果所需的文本节点始终处于此位置,则可以使用索引,如:

//div[@class='detalheDir2']/div[@class='preco']/text()[2]

如果它始终位于<script>标记之后,您可以写:

//div[@class='detalheDir2']/div[@class='preco']/script/following-sibling::text()

如果它始终是您可以写的最后一个文本节点

//div[@class='detalheDir2']/div[@class='preco']/text()[last()]

可能包含,的事实可能是关键:

//div[@class='detalheDir2']/div[@class='preco']/text()[contains(., ',')]

所有这些都适用于您的示例,但是您的输入中的差异将导致其中任何一个中断。

如果您只知道它位于文本节点中的某个位置,并且只有格式将其与其他节点区分开来,那么最好选择所有文本节点并迭代它们,并与{{1}上的正则表达式匹配}。

相关问题