php:如何将html作为xml使用?如何查找特定节点并获取这些节点中的文本?
假设我有以下网页:php:如何将html作为xml使用?如何查找特定节点并获取这些节点中的文本?,php,xml,html-parsing,Php,Xml,Html Parsing,假设我有以下网页: <html> <body> <div class="transform"> <span>1</span> </div> <div class="transform"> <span>2</span> </div> <div class="transform">
<html>
<body>
<div class="transform">
<span>1</span>
</div>
<div class="transform">
<span>2</span>
</div>
<div class="transform">
<span>3</span>
</div>
</body>
</html>
1.
2.
3.
我想找到所有包含类转换的div元素,并获取每个div元素中的文本
我知道我可以用正则表达式轻松地做到这一点,但我想知道,如果没有正则表达式,但解析xml并找到所需的节点,我如何做到这一点
更新
我知道在这个例子中,我可以遍历所有的div。但这只是一个例子来说明我需要什么
在本例中,我需要查询包含属性class=transform
谢谢 可以使用SimpleXML-请参见下面的示例:
$string = "<?xml version='1.0'?>
<html>
<body>
<div class='transform'>
<span>1</span>
</div>
<div>
<span>2</span>
</div>
<div class='transform'>
<span>3</span>
</div>
</body>
</html>";
$xml = simplexml_load_string($string);
$result = $xml->xpath("//div[@class = 'transform']");
foreach($result as $node) {
echo "span " . $node->span . "<br />";
}
$string=”
1.
2.
3.
";
$xml=simplexml\u load\u string($string);
$result=$xml->xpath(//div[@class='transform']);
foreach($result作为$node){
回显“span.”$node->span.
;
}
用xpath更新了它…好的,我想要的东西可以用php xpath轻松实现: 例如:
http://ditio.net/2008/12/01/php-xpath-tutorial-advanced-xml-part-1/
您可以使用xpath来处理这些项。对于该特定查询,您将使用:
div[contains(concat(" ",@class," "), concat(" ","transform"," "))]
完整的PHP示例:
<?php
$document = new DomDocument();
$document->loadHtml($html);
$xpath = new DomXPath($document);
foreach ($xpath->query('div[contains(concat(" ",@class," "), concat(" ","transform"," "))]') as $div) {
var_dump($div);
}
之前已经回答过:我想查询包含属性class=transform