从XML元素中删除开始和结束空格
如何删除XML字段前后的所有空格字符?
<data version="2.0">
<field>
1
</field>
<field something=" some attribute here... ">
2
</field>
</data>
请注意,1和2之前的空格以及"此处的某些属性...",我想用PHP删除它。
if(($xml = simplexml_load_file($file)) === false) die();
print_r($xml);
数据似乎也不是字符串,我需要在每个变量之前附加(字符串)。为什么?
解决方案
您可能需要使用以下内容:
$str = file_get_contents($file);
$str = preg_replace('~s*(<([^>]*)>[^<]*</2>|<[^>]*>)s*~','$1',$str);
$xml = simplexml_load_string($xml,'SimpleXMLElement', LIBXML_NOCDATA);
我还没有尝试过,但您可以在http://www.lonhosford.com/lonblog/2011/01/07/php-simplexml-load-xml-file-preserve-cdata-remove-whitespace-between-nodes-and-return-json/上找到有关它的更多信息。
请注意,左方括号和右方括号之间的空格(<x> _space_ </x>
)和属性(<x attr=" _space_ ">
)实际上是XML文档数据的一部分(与<x> _space_ <y>
之间的空格形成对比),因此我建议您使用的源代码应该少一些空格。
相关文章