在xml节点中保留换行符
问题描述:
我试图将XML节点中的行转换为无序列表,但是我遇到了一些困难。在xml节点中保留换行符
就拿这个节点:
<test>
Line1
Line2
Line3
</test>
我想将它与PHP
<ul>
<li>Line1</li>
<li>Line2</li>
<li>Line3</li>
</ul>
变成这个我已经使用的DOMDocument和SimpleXML试过,但既不似乎保留换行符。当回荡,节点值看起来像这样:
Line1 Line2 Line3
我也按顺序尝试explode
具有包含每一行作为元素的数组:
$lines = explode('\n', $node->nodeValue);
但是,它只返回一个数组有一个元素,所以我不能用它创建一个无序列表。
有没有简单的方法来做到这一点?
谢谢。
答
你会踢你自己。 '\n'
应该是"\n"
!这里有一个完整的例子:
$Dom = new DOMDocument('1.0', 'utf-8');
$Dom->loadXML(
'<test>
Line1
Line2
Line3
</test>');
$value = $Dom->documentElement->nodeValue;
$lines = explode("\n", $value);
$lines = array_map('trim', $lines); // remove leading and trailing whitespace
$lines = array_filter($lines); // remove empty elements
echo '<ul>';
foreach($lines as $line) {
echo '<li>', htmlentities($line), '</li>';
}
echo '</ul>';
...你说得对,它有效,谢谢。这么小的疏忽导致了我很多麻烦,我现在就开始踢自己了。 – Shane