Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从xml元素值中删除换行符_Php_Xml_Newline - Fatal编程技术网

Php 从xml元素值中删除换行符

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

我有一个包含6000个元素的xml文件,比如LastName和FirstName

我需要删除元素值内的新行

输入:

<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>