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

New*_*ger 5 php xpath

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

现在我这样做:

$temp= $content->xpath('qwe/qwe');
$temp = each($temp[0]);
return $temp['value'];
Run Code Online (Sandbox Code Playgroud)

但正如你可以看到它远没有很好的解决方案:(

在c#中它很简单

public string readXmlVar(string xpath)
{
    XmlNode xmlNode = xml.SelectSingleNode(xpath);
    return xmlNode.InnerText;
}
Run Code Online (Sandbox Code Playgroud)

Yos*_*shi 9

尝试:

$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;
}
Run Code Online (Sandbox Code Playgroud)

$textNode将是一个DOMText.


pro*_*son 7

对于SimleXmlElement只投它作为一个字符串:return (string) $temp;.供DomDocument使用return $temp->nodeValue.

  • 一个人必须小心thoguh,使用`$ temp-> nodeValue`为'DomDocument`将返回给定节点下面的所有子节点的文本内容(包括子节点的子节点). (2认同)