【发布时间】:2017-10-26 13:11:54
【问题描述】:
我正在尝试解析 dtbook 的 XML,其中包含稍后包含 p-tag 的级别(1、2 和 3)。我正在用 PHP DOM 做这个。 Link to XML
在这些 p-tag 的 som 中有 noteref-tags。我确实掌握了这些,但似乎我能得到的唯一结果是 noteref 出现在 p-tag 之前或之后。我需要一些注释出现在 p-tag 中;或者换句话说,它们实际上应该在哪里。
<p>Special education for the ..... <noteref class="endnote" idref="fn_5"
id="note5">5</noteref>. Interest ..... 19th century <noteref class="endnote"
idref="fn_6" id="note6">6</noteref>.</p>
这是我现在获得的 p-tag 代码。在此之前,我正在遍历 dt-book 以获取 p-tag。效果很好。
if($level1->tagName == "p") {
echo "<p>".$level1->nodeValue;
$noterefs = $level1->childNodes;
foreach($noterefs as $noteref) {
if($noteref->nodeType == XML_ELEMENT_NODE) {
echo "<span><b>".$noteref->nodeValue."</b></span>";
}
}
echo "</p><br>";
}
这些是我得到的结果:
特殊教育...... 5. 兴趣...... 19 世纪 6.56
56特殊教育..... 5. 兴趣..... 19世纪6.
我还希望 p-tag 不显示 noteref-tag 中的内容。这应该由 noteref-tag 完成(仅)。
那么,有人知道可以做些什么来解决这些问题吗?感觉就像我在谷歌上搜索并尝试了几乎所有东西。
【问题讨论】:
标签: php xml dom parent-child pcdata