- A+
所属分类:PHP
编程之家收集整理的这篇文章主要介绍了php – 从xpath查询中排除节点,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我目前使用的一些代码.我需要帮助的地方是$bn_name_search和$bn_ID_search
$xpath_base='/ItemSearchResponse/Items/Item[';
for ($i = 1; $i<=10; $i++)
{
$curr_item_base=$xpath_base.$i.']';
$bn_name_search=$curr_item_base.'/browseNodes//browseNode/name/text()';
$bn_ID_search=$curr_item_base.'/browseNodes//browseNode/browseNodeID/text()';
$bn_names=$parsed->xpath($bn_name_search);
$bn_IDs=$parsed->xpath($bn_ID_search);
}
这给了我所有的browsnode名称和所有broswnode ID.我现在要做的是只查找不是“所有产品”的browsenode名称“browseNode / name /”,只有browsnode ID“browseNode / browseNodeID /”共享一个名称不是“browseNode /”的“browseNode /”所有产品“我不必测试browseNode / name的存在.如果有ID,则不会为空.如果我可以放两个否定表达式,那就更好了.我会省略名为“所有产品”的名称和名称为“部门”的名称.
编辑:
这是XML的一个块:如果它显示“& lt; name& gt; Departments& lt; / name& gt;”,我想排除该名称及其ID.如果我有一个类似的“& lt; name& gt;所有产品& lt; / name& gt;”我也想排除这个名字和它的ID. (按ID,我的意思是& lt; browseNodeID& gt;)
<browseNodes>
<browseNode>
<browseNodeID>2346727011</browseNodeID>
<name>Casual</name>
<Ancestors>
<browseNode>
<browseNodeID>1045024</browseNodeID>
<name>Dresses</name>
<Ancestors>
<browseNode>
<browseNodeID>1040660</browseNodeID>
<name>Women</name>
<Ancestors>
<browseNode>
<browseNodeID>1036682</browseNodeID>
<name>Departments</name>
<IscategoryRoot>1</IscategoryRoot>
<Ancestors>
<browseNode>
<browseNodeID>1036592</browseNodeID>
<name>Clothing & AccessorIEs</name>
</browseNode>
</Ancestors>
</browseNode>
</Ancestors>
</browseNode>
</Ancestors>
</browseNode>
</Ancestors>
</browseNode>
</browseNodes>
解决方法:
你去:
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫