1

我用 simpledom 从 xml 文件中删除了一些元素。

编码:

$this->xmlDocument->removeNodes("//entity[name='mac']");

这是初始文件:

<entity id="1000070">
    <name>apple</name>
    <type>category</type>
    <entities>
        <entity id="7002870">
            <name>mac</name>
            <type>category</type>
        </entity>
        <entity id="7024080">
            <name>iphone</name>
            <type>category</type>
        </entity>
        <entity id="7024080">
            <name>ipad</name>
            <type>category</type>
        </entity>
    </entities>
</entity>

之后的文件:

<entity id="1000070">
    <name>apple</name>
    <type>category</type>
    <entities>




        <entity id="7024080">
            <name>iphone</name>
            <type>category</type>
        </entity>
        <entity id="7024080">
            <name>ipad</name>
            <type>category</type>
        </entity>
    </entities>
</entity>

我想知道在运行删除代码后如何删除留下的空白行?

谢谢!

4

2 回答 2

0

万一你想为你的输出删除所有这些空格,下面有一个简单的方法:

$this->xmlDocument->removeNodes(
    "//entity[name='mac'] | //text()[normalize-space(.) = '']"
);
于 2013-06-17T08:23:11.887 回答
0

您可以使用 XPath 定位空白文本节点。

如果您要删除的节点是//entity[name='mac']之前的空白文本节点

//text()[normalize-space(.) = ''][following-sibling::entity[position()=1][name='mac']]

然后,您可以使用|运算符删除两个节点集,您的命令变为:

$this->xmlDocument->removeNodes(
    "//entity[name='mac'] | //text()[normalize-space(.) = ''][following-sibling::entity[position()=1][name='mac']]"
);
于 2011-03-05T09:16:16.630 回答