我正在尝试将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);
但是,它只返回一个带有一个元素的数组,所以我不能用它做一个无序列表。
我有一个简单的方法吗?
感谢。
答案 0 :(得分:2)
你要踢自己。 '\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>';