gpt4 book ai didi

php - PHP和Xpath-从内部文本获取节点

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

我有以下XML结构

<url>
<loc>some-text</loc>
</url>

<url>
<loc>some-other-text</loc>
</url>


我的目标是从其内部文本(即 loc)或其一部分(即 some-text)中获取 other-text节点。这是我的最佳尝试:

$doc = new DOMDocument('1.0','UTF-8');
$doc->load($filename);
$xpath = new Domxpath($doc);
$locs = $xpath->query('/url/loc');

foreach($locs as $loc) {
if(preg_match("/other-text/i", $loc->nodeValue)) return $loc->parentNode;
}


是否可以简单地使用xpath查询来获得特定的 loc节点而无需遍历所有节点?

最佳答案

是的,您可以使用//url/loc[contains(., "other-text")]之类的查询



例:

$xml = <<<'XML'
<root>
<url>
<loc>some-text</loc>
</url>

<url>
<loc>some-other-text</loc>
</url>
</root>
XML;

$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);

foreach ($xpath->query('//url/loc[contains(., "other-text")]') as $node) {
echo $dom->saveXML($node);
}




输出:

<loc>some-other-text</loc>

关于php - PHP和Xpath-从内部文本获取节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867665/

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