You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用XML DOM解析时如何筛选仅含id="2"属性的标签元素

第二种需求实现方案

你只需要把XPath筛选条件反转,筛选出所有不带有id="2"属性的<nazwa_waluty>节点,删除这些节点即可:

<?php
$doc4 = new DOMDocument();
$doc4->preserveWhiteSpace = false;
$doc4->load('output.xml');
$xpath4 = new DOMXPath($doc4);
// 筛选所有无id="2"属性的nazwa_waluty节点
$nodesToRemove = $xpath4->query('//*/pozycja/nazwa_waluty[not(@id="2")]');
foreach($nodesToRemove as $node) {
    // 若需要删除对应整条pozycja汇率条目,使用下面这行
    $node->parentNode->parentNode->removeChild($node->parentNode);
    // 若仅需要删除不带id="2"的nazwa_waluty标签本身,替换为下面这行
    // $node->parentNode->removeChild($node);
}
$doc4->formatOutput = true;
$doc4->save('output4.xml');

逻辑说明

核心是使用XPath的not()运算符做反向匹配,和你已实现的第一种需求逻辑完全对称,仅调整了筛选规则,无需修改其他交互逻辑。

内容的提问来源于stack exchange,提问作者Kacper Woźniak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:21:00