这是我的xml:
<news_item>
<title>TITLE</title>
<content>COTENT.</content>
<date>DATE</date>
<news_item>
我想获取news_item中的标签名称。
这是我到目前为止所做的:
$dom = new DOMDocument();
$dom->load($file_name);
$results = $dom->getElementsByTagName('news_item');
不使用其他php库如simpleXML ,我可以获取子标签的所有标签名称(而不是值)的名称吗?
示例解决方案
title, content, date
我不知道news_item里面的标签名称,只知道容器标签名称'news_item'
谢谢你们!
答案 0 :(得分:11)
试试这个:
foreach($results as $node)
{
if($node->childNodes->length)
{
foreach($node->childNodes as $child)
{
echo $child->nodeName,', ';
}
}
}
应该有效。目前使用类似的东西,但对于html而不是xml。
答案 1 :(得分:1)
$nodelist = $results->getElementsByTagName('*');
for( $i=0; $i < $nodelist->length; $i++)
echo $nodelist->item($i)->nodeName;
答案 2 :(得分:0)
[以前的错误答案已编辑]
尽管如此,使用simplexml_import_dom()从DOMElement中生成SimpleXMLElement是没有成本的。两者都只是底层libxml2数据结构的对象接口。您甚至可以对DOMElement进行更改,并将其反映在SimpleXMLElement中,反之亦然。所以它不一定是选择。