Php 从xml元素值中删除换行符
我有一个包含6000个元素的xml文件,比如LastName和FirstName 我需要删除元素值内的新行 输入:Php 从xml元素值中删除换行符,php,xml,newline,Php,Xml,Newline,我有一个包含6000个元素的xml文件,比如LastName和FirstName 我需要删除元素值内的新行 输入: <info> <LastName> HOOVER </LastName> </info> 胡佛 输出: <info> <LastName> HOOVER </LastName> </info> 胡佛 我尝试了preg\u replace
<info>
<LastName>
HOOVER
</LastName>
</info>
胡佛
输出:
<info>
<LastName>
HOOVER
</LastName>
</info>
胡佛
我尝试了
preg\u replace
和str\u replace
的空格和\n
,\t
,\r
,但失败了。既然您使用的是XML,您还应该使用has提供的一个。下面的示例使用和查找XML文档中的所有文本节点,并将它们删除
输入:
输出:
胡佛
既然您使用的是XML,那么还应该使用has提供的一种。下面的示例使用和查找XML文档中的所有文本节点,并将它们删除
输入:
输出:
胡佛
可能的重复注意,虽然这个问题在技术上是重复的,但链接的重复项没有一个可接受的答案,并且给出的解决方案在质量上仅为soso。也许链接的应该用这个来代替。这个问题要求部分保留空白,这样缩进就不会被破坏。重复的问题似乎对更常见的XML空白规范化感兴趣,这种规范化不仅仅是内容上的trim
(但由于PCRE中的任意空白字符\s
,以及它的utf-8模式,这一点就不多了),请参阅。可能的重复注意,虽然这个问题在技术上是重复的,但链接的重复没有一个可接受的答案,并且给出的解决方案在质量上仅为soso。也许链接的应该用这个来代替。这个问题要求部分保留空白,这样缩进就不会被破坏。重复问题似乎对更常见的XML空白规范化感兴趣,这种规范化不仅仅是内容上的trim
(但由于PCRE中的任意空白字符\s
,以及它的utf-8模式),请参阅。
$xml = <<< XML
<info>
<LastName>
HOOVER
</LastName>
</info>
XML;
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->loadXml($xml);
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//text()') as $domText) {
$domText->data = trim($domText->nodeValue);
}
$dom->formatOutput = true;
echo $dom->saveXml();
<?xml version="1.0"?>
<info>
<LastName>HOOVER</LastName>
</info>