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]

常に<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(., ',')]

これらはすべてあなたの例では機能しますが、入力にばらつきがあると、これらのいずれかが機能しなくなります。

テキストノードのどこかにあることがわかっていて、フォーマットだけが他のテキストノードと区別できる場合は、すべてのテキストノードを選択して繰り返し処理し、の正規表現と照合することをお勧めしtextContentます。

于 2012-08-30T18:47:55.690 に答える