从xml元素值中删除换行符

时间:2011-11-20 09:22:32

标签: php xml newline

我有一个xml文件,包含像LastName和FirstName这样的6000元素。

我需要删除元素值中的新行。

输入:

<info>
  <LastName>

     HOOVER

  </LastName>
</info>

输出:

<info>
  <LastName>
     HOOVER
  </LastName>
</info>

我已尝试preg_replacestr_replace寻找空格\n\t\r并失败。

1 个答案:

答案 0 :(得分:6)

由于您正在使用XML,因此您还应该使用XML extensions PHP之一。以下示例使用DOMXPath查找XML文档中的所有文本节点,并trim

输入:

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