我有一个xml文件,我将其加载如下:
//$file the file system path of the xml file
function getTopicsList($file){
$doc = new DOMDocument();
$doc->load( $file );
var_dump($doc->getElementsByTagName('topic'));
return $doc->getElementsByTagName('topic');
}
加载的xml文件内容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<topics>
<topic>
<title>Title1</title>
<keywords>"Some Keys"</keywords>
</topic>
<topic>
<title>The Title</title>
<keywords>Another Key</keywords>
</topic>
<topic>
<title>A Title</title>
<keywords>Key two</keywords>
</topic>
</topics>
上述代码中的var_dump()
只打印出有限的信息,例如:
object(DOMNodeList)#30 (1) {
["length"]=>
int(3)
}
我希望它至少应该打印该对象的属性,即xml标签及其值。我尝试使用其他功能,例如print_r()
和var_export()
,但没有我想要的详细信息。
答案 0 :(得分:0)
不,这是节点列表。您可以使用foreach
对item()
进行迭代,或使用getElementsByTagName()
方法访问节点。
节点列表用于不同的地方,$childNodes
是一个,另一个是$dom = new DOMDocument();
$dom->loadXML('<foo/>');
var_dump($dom->documentElement);
属性。 Xpath表达式也返回节点列表。
请注意,节点不仅可以是元素,还可以是多种节点类型。像文本,cdata部分或属性一样。
您可以使用var_dump()转储单个节点。这适用于PHP&gt; = 5.3.11或&gt; = 5.4.1。
object(DOMElement)#2 (18) {
["schemaTypeInfo"]=>
NULL
["tagName"]=>
string(3) "foo"
["textContent"]=>
string(0) ""
["baseURI"]=>
string(1) "/"
["localName"]=>
string(3) "foo"
["prefix"]=>
string(0) ""
["ownerDocument"]=>
...
输出:
{{1}}