在最后一天,我在 PHP 中进行了一些 XML 解析。我使用外部服务通过 XML 向我提供基于 ISBN 作为搜索词的图书信息(德国国家图书馆提供的服务,需要在请求中包含私人令牌(这不是问题的原因,我已经检查过了)-> https://www.dnb.de/EN/Professionell/Metadatendienste/Datenbezug/SRU/sru_node.html | 我还检查了在 php.ini 中启用了“allow_url_fopen”) .现在,我的问题是,无论我使用必要的书籍信息进行 XML 解析的任何方法都不会显示,并且我无法在简单 XML 元素对象中使用它(请参阅下面这个屏幕截图中我的代码中的第二个“回声”的结果)。如果我首先将 XML 作为字符串提取,则信息是可见且可访问的(请参阅此屏幕截图中下面代码中第一个“回显”的结果)。目标是能够根据书籍的元素名称(dc:title、dc:creator、dc:publisher、dc:date 等)单独访问有关书籍的信息。在我当前的一段代码中,这是不可能的,因为 PHP 在运行“foreach”循环时会告诉我:“警告:main():节点不再存在”。我已经看过几篇关于简单 XML 元素对象中命名空间问题的 Stack Overflow 帖子,但我无法针对我在这里面临的问题调整那里提出的解决方案。我希望有人可以帮助我解决这个问题并指出解决方案,这样我就可以访问 XML 的“dc”命名空间中的信息。这是我迄今为止使用过的非常简短的 PHP 代码:$request = file_get_contents("http://externalXML.com"); //URL was replacedecho "<pre>"; print_r($request); echo "</pre>"; $xml = simplexml_load_string($request);echo "<pre>"; print_r($xml); echo "</pre>"; foreach ($xml->records->record->recordData->dc->children() as $child) { echo "Inhalt: " . $child . "<br>";}这是 XML 的内容(因为我一直在寻找唯一的 ISBN(请参阅“查询”元素),结果只能没有或只有一个,但绝不会更多):<searchRetrieveResponse><version>1.1</version><numberOfRecords>1</numberOfRecords><records> <record> <recordSchema>oai_dc</recordSchema> <recordPacking>xml</recordPacking> <recordData>干杯,蒂莫
1 回答
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消