gpt4 book ai didi

php - 在 php 中加载 xml 时出错(不是绝对的)

转载 作者:行者123 更新时间:2023-12-04 05:43:28 25 4
gpt4 key购买 nike

我正在尝试加载带有多个命名空间声明的 XML 文档
我的 php 是:

<?php 
$doc = new DOMDocument('1.0','UTF-8');
$doc->load( 'UBLCatalog.xml' );

$Items = $doc->getElementsByTagNameNS( "UBLCommonAggregateComponents","Item" );
foreach( $Items as $Item )
{
$descriptions = $Item->getElementsByTagNameNS( "UBLCommonBasicComponents","Description" );
$description = $descriptions->item(0)->nodeValue;

echo "<b>$description\n</b><br>";
}
?>

错误是:

xmlns: URI UBLCatalogDocument is not absolute in file:///C:/wamp/www/XMLExperiments/UBLCatalog.xml,



我正在获取输出,但错误很烦人。

逐字错误是:注意:DOMDocument::load() [domdocument.load]: xmlns: URI UBLCatalogDocument is not absolute in file:///C:/wamp/www/XMLExperiments/UBLCatalog.xml, line: 4 in C :\wamp\www\XMLExperiments\ItemsXml.php 第 3 行

而且,如果我删除默认命名空间 (xmlns="UBLCatalogDocument"),错误就会消失

最佳答案

PHP XML 扩展(DOM、XMLReader、SimpleXml 等)use libxml library解析 XML 文件。

这个错误的原因是 libxml 需要 xmlns 中的绝对 URL属性 (即 xmlns="http://example.com/some-unique-url" ),但只获取文本( xmlns="UBLCatalogDocument" )。

来自 libxml webpage :

The namespace value has to be an absolute URL, but the URL doesn't have to point to any existing resource on the Web.



因此,如果可能,请更改您的 xmlns属性到某个绝对 URL。

关于php - 在 php 中加载 xml 时出错(不是绝对的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10986913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com