[英]DOMXPath union extract with PHP
我试图让img
和div
这是后即将到来div
其中包含img
,都在同一个查询。 所以我这样做:
$nodes = $xpath->query('//div[starts-with(@id, "someid")]/img |
//div[starts-with(@id, "someid")]/following-sibling::div[@class="spec_class"][1]/text()');
现在,我可以获取img
标签的属性,但是无法获取以下同级的文本。 如果我分开查询(两个查询-第一个查询img
和第二个查询同级),则可以工作。 但是,如何仅执行一个查询呢? 顺便说一句,语法没有错误。 但是不知何故工会不起作用,或者也许我没有提取同级内容权利。
这是标记(它与另一个文本和id="someid_%randomNumber%
重复多次)
<div id="someid_1">
<img src="link_to_image.png" />
...some text...
</div>
<div>...another text...</div>
<div class="spec_class">
...Important text...
</div>
我想同时查询link_to_image.png和...重要文本...
您的查询似乎正确。
XML示例:
<div>
<div id="someid-1"><img src="foo"/></div>
<div class="spec_class">bar</div>
<div class="spec_class">baz</div>
</div>
示例PHP代码:
$dom = new DOMDocument;
$dom->loadXml($xhtml);
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//div…') as $node) {
echo $dom->saveXML($node);
}
输出( 演示 ):
<img src="foo"/>bar
请注意,您将必须迭代XPath查询返回的DOMNodeList。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.