0

我正在尝试将 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);

但是,它只返回一个包含一个元素的数组,所以我不能用它制作一个无序列表。

我有一个简单的方法可以做到这一点吗?

谢谢。

4

1 回答 1

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>';
于 2013-10-11T19:44:01.887 回答