0

如何使用 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);
4

1 回答 1

1

如果你想要的文本节点总是在这个位置,你可以使用如下索引:

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

如果它总是在 a<script>标签之后,您可以编写:

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

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

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

也许它包含 a 的事实,可能是关键:

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

所有这些都适用于您的示例,但是您输入的差异将使这些中断。

如果您只知道它存在于文本节点中的某个位置,并且只有格式将其与其他节点区分开来,那么您最好选择所有文本节点并遍历它们,并与 regexps 上的正则表达式匹配textContent

于 2012-08-30T18:47:55.690 回答