首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP DOMDocument解析类XML文档

用PHP DOMDocument解析类XML文档
EN

Stack Overflow用户
提问于 2018-12-26 22:49:38
回答 1查看 37关注 0票数 0

我尝试使用PHP DOMDocument解析EPUB索引的XML类结构,如

代码语言:javascript
复制
$doc = new DOMDocument();
$xml = '
      <navPoint playOrder="1" id="np-1">
        <navLabel>
          <text>I</text>
        </navLabel>
        <content src="/1.html"/>
      </navPoint>
      <navPoint playOrder="2" id="np-2">
        <navLabel>
          <text>II</text>
        </navLabel>
        <content src="/2.html"/>
      </navPoint>
';

@$doc->loadHTML('<?xml encoding="utf-8" ?>
<html><head></head><body>' . $xml . '</body></html>');

$output = $doc->getElementsByTagName('navPoint');

print_r($output);

但它又回来了

代码语言:javascript
复制
DOMNodeList Object
(
    [length] => 0
)

如果它不把它解析为一个简单的HTML文档,我做错了什么?

我也尝试过PHP解析器,但是由于它不是一个实际的XML文档,它会因为一个无效的XML而产生错误。因此,我更喜欢把它当作HTML文档来处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-26 22:53:54

你在找loadXML,而不是loadHTML

不需要用HTML标记包围一切,只需添加一个虚拟的<root>项,因为任何有效的XML都必须有一个(您也可以将它添加到$xml变量本身)。

此外,在99%的情况下,应该避免在函数调用之前使用@,它会阻止您看到/理解错误的地方。

下列各方应这样做:

代码语言:javascript
复制
$doc->loadXML('<root>' . $xml . '</root>');

演示这里: https://3v4l.org/s8QvM

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53937968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档