gpt4 book ai didi

php - 无法使PHP DOMXpath子字符串函数正常工作

转载 作者:行者123 更新时间:2023-12-03 17:12:00 25 4
gpt4 key购买 nike

使用以下PHP代码示例:

$xml = "<person><name>John-Doe</name></person>";
$doc = new DOMDocument("1.0", "ISO-8859-15");
$xpath = new DOMXpath($doc);
$nodelist = $xpath->query("substring-before(/person/name/text(), '-Doe')");
print "Found " . $nodelist->length . " results.";


我得到的输出:


共找到0条结果


但是,当我将相同的XML和xpath查询放入在线Xpath测试器中时,我得到了预期的结果,即“ John”

我似乎也无法使用substring()和substring-after()得到任何结果。 PHP的DOMXpath有问题吗,还是我做错了什么?

最佳答案

XPath substring-before()函数返回string而不是节点,并且您不应该使用DOMXPath::query()执行不返回节点*的XPath表达式。 DOMXPath::evaluate()是此处要使用的正确函数:

$xml = "<person><name>John-Doe</name></person>";
$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXpath($doc);
$result = $xpath->evaluate("substring-before(/person/name/text(), '-Doe')");
print $result;


eval.in demo

输出:

John


*)引自 DOMXPath::query > Return Values


任何不返回节点的表达式将返回一个空的 DOMNodeList

关于php - 无法使PHP DOMXpath子字符串函数正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com