我使用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>
我想知道如何删除运行删除代码后留下的空白行?
谢谢!
答案 0 :(得分: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']]"
);
答案 1 :(得分:0)
如果您想要为输出删除所有这些空格,以下是一种简单的方法:
$this->xmlDocument->removeNodes(
"//entity[name='mac'] | //text()[normalize-space(.) = '']"
);