Php 删除XML元素后删除空白行?
我使用simpledom从xml文件中删除了一些元素 守则:Php 删除XML元素后删除空白行?,php,xml,dom,simpledom,Php,Xml,Dom,Simpledom,我使用simpledom从xml文件中删除了一些元素 守则: $this->xmlDocument->removeNodes("//entity[name='mac']"); 以下是初始文件: <entity id="1000070"> <name>apple</name> <type>category</type> <entities> <entity id="7
$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>
苹果
类别
雨衣
类别
苹果手机
类别
ipad
类别
该文件随后:
<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>
苹果
类别
苹果手机
类别
ipad
类别
我想知道怎样才能删除运行删除代码后留下的空白行?
谢谢 可以使用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']]"
);
如果您想删除输出中的所有空格,下面有一个简单的方法:
$this->xmlDocument->removeNodes(
"//entity[name='mac'] | //text()[normalize-space(.) = '']"
);
您可以删除空格,但最终可能不会得到缩进(美化)良好的XML。您可能会在同一行中出现
。