Php和Xpath - 如何从节点内部获取文本

时间:2011-06-27 15:08:35

标签: php xpath

如何使用xpath从节点内部获取文本?

现在我这样做:

$temp= $content->xpath('qwe/qwe');
$temp = each($temp[0]);
return $temp['value'];

但正如你所看到的那样,它远非好的解决方案:(

在c#中它就像

一样简单
public string readXmlVar(string xpath)
{
    XmlNode xmlNode = xml.SelectSingleNode(xpath);
    return xmlNode.InnerText;
}

4 个答案:

答案 0 :(得分:8)

尝试:

$dom = new DOMDocument;
$dom->loadXML('<root>
    <p>some text<br />some more text</p>
</root>');

$xpath = new DOMXPath($dom);
foreach ($xpath->query('/root/p/text()') as $textNode) {
    echo $textNode->nodeValue;
}

$textNode将是DOMText

答案 1 :(得分:7)

对于SimleXmlElement,只需将其转换为字符串:return (string) $temp;DomDocument使用return $temp->nodeValue

答案 2 :(得分:2)

(string) current($xml->xpath("//group[@ref='HS_TYP']"))

希望有所帮助

答案 3 :(得分:1)

这将从简单的xml元素

获取所有内部文本
dom_import_simplexml($xpath->query('//div[@class="h1"]')->textContent;