如何使用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);
答案 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}上的正则表达式匹配}。