如何使用PHP按顺序处理XML字符串

时间:2012-11-04 20:13:37

标签: php xml

我有一个XML文件,其中包含一些非常简单的布局结构的文本:

<?xml version='1.0'?>
<page>
  <section>
    <header>Header</header>
    <par>Some paragraph</par>
    <par>Another paragraph with <emph>formatting</emph></par>
  </section>
</page>

在PHP中,我使用SimpleXML读取此文件(请注意,我故意剥离其他标记!):

$page = file_get_contents("page.xml");
if ($page) {
  $stripped = strip_tags($page, "<?xml><page><section><header><par><emph>");
  $xml = new SimpleXMLElement($stripped);
}

现在我想迭代XML元素并按照的顺序将它们打印为我的网站的HTML。最终结果应该是以下代码段:

<h1>Header</h1>
<p>Some paragraph
<p>Another paragraph with <i>formatting</i>

我已经通过SimpleXML和XPath进行了编程,并尝试弄清楚如何按顺序迭代XML树 ,以便我可以将原始XML文件消化为HTML输出。我可以产生一些有些期望的结果,但<emph></emph>已经消失了;我怎么进一步下降到树?到目前为止我的代码:

foreach ($xml->section as $s) {
  echo "<h1>" . $s->header . "</h1>";
  foreach ($s->par as $p) {
    echo "<p>" . $p;
    //  Do some magic here to ensure <emph> tags are recognized and responded to properly.
  }
}

任何提示和指示表示赞赏!谢谢: - )

0 个答案:

没有答案