我有一个xml文件,包含像LastName和FirstName这样的6000元素。
我需要删除元素值中的新行。
输入:
<info>
<LastName>
HOOVER
</LastName>
</info>
输出:
<info>
<LastName>
HOOVER
</LastName>
</info>
我已尝试preg_replace
和str_replace
寻找空格\n
,\t
,\r
并失败。
答案 0 :(得分:6)
由于您正在使用XML,因此您还应该使用XML extensions PHP之一。以下示例使用DOM和XPath查找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>