xml文件解析问题_PHP教程
程序员文章站
2022-05-26 13:28:48
...
xml文件解析问题
我要解析下面的xml文件,取得title1,title2,xm:ce,xm:bt对应的值。
。。。。。。
title11
link12
dddddd
222222
- ">
title21
link22
aaaaaa
333333
代码如下所示:
$doc = new DOMDocument();
$doc->load( "testFile.xml" );
$itemtags = $doc->getElementsByTagName( "item" );
foreach( $itemtags as $itemtag )
{
$titles = $itemtag->getElementsByTagName( "title1" );
$title = $titles->item(0)->nodeValue;
$links = $itemtag->getElementsByTagName( "title2" );
$link = $links->item(0)->nodeValue;
//$dctags = $itemtag->getElementsByTagName( "xm:ce" );
//$dctag = $dctags->item(0)->nodeValue;
echo "$title - $link - $dctag n";
}
现在的问题是,title1和title2对应的值都能取到,
但是xm:ce和xm:bt对应的值无法取到,
用这段代码的话 $itemtag->getElementsByTagName( "xm:ce" );取到的对象肯定是空的。
请教一下,如何才能取到xm:ce和xm:bt对应的值呢?
最佳答案[url=http://www.111cn.cn/bbs/space.php?username=volew]链接标记volew[/url]
[url=http://www.111cn.cn/bbs/space.php?uid=94211]链接标记[img]http://www.111cn.cn/server/avatar.php?uid=94211&size=small[/img][/url]simplexml_load_file 怎么样?这个都可以读到的。
D8888D回贴内容-------------------------------------------------------
simplexml_load_file 怎么样?这个都可以读到的。
D8888D回贴内容-------------------------------------------------------
用正则
D8888D回贴内容-------------------------------------------------------
没有人再给点建议吗!
D8888D回贴内容-------------------------------------------------------
呀,百度,,,有现成的!
D8888D回贴内容-------------------------------------------------------
问题已经解决了,volew和我现在的方法一样。过会我把代码贴出来。
D8888D回贴内容-------------------------------------------------------
$rdf = simplexml_load_file("http://www.test.com/index.rdf");
$arr = array();
$i = 1;
while (isset($rdf->item[$i]->title)) {
$arr['item'][$i]['title1'] = htmlspecialchars($rdf->item[$i]->title1);
$node = $rdf->item[$i]->children('http://purl.org/dc/elements/1.1/');
$arr['item'][$i]['ce'] = htmlspecialchars($node->ce);
$arr['item'][$i]['bt'] = htmlspecialchars($node->bt);
$i++;
}
$i--;
foreach ($arr['item'] as $item) {
print $item['ce']."----".$item['bt']. "
";
}
大概处理过程就是这样,没有详细整理,呵呵!
如有错误,欢迎指正。
我要解析下面的xml文件,取得title1,title2,xm:ce,xm:bt对应的值。
。。。。。。
代码如下所示:
$doc = new DOMDocument();
$doc->load( "testFile.xml" );
$itemtags = $doc->getElementsByTagName( "item" );
foreach( $itemtags as $itemtag )
{
$titles = $itemtag->getElementsByTagName( "title1" );
$title = $titles->item(0)->nodeValue;
$links = $itemtag->getElementsByTagName( "title2" );
$link = $links->item(0)->nodeValue;
//$dctags = $itemtag->getElementsByTagName( "xm:ce" );
//$dctag = $dctags->item(0)->nodeValue;
echo "$title - $link - $dctag n";
}
现在的问题是,title1和title2对应的值都能取到,
但是xm:ce和xm:bt对应的值无法取到,
用这段代码的话 $itemtag->getElementsByTagName( "xm:ce" );取到的对象肯定是空的。
请教一下,如何才能取到xm:ce和xm:bt对应的值呢?
最佳答案[url=http://www.111cn.cn/bbs/space.php?username=volew]链接标记volew[/url]
[url=http://www.111cn.cn/bbs/space.php?uid=94211]链接标记[img]http://www.111cn.cn/server/avatar.php?uid=94211&size=small[/img][/url]simplexml_load_file 怎么样?这个都可以读到的。
D8888D回贴内容-------------------------------------------------------
simplexml_load_file 怎么样?这个都可以读到的。
D8888D回贴内容-------------------------------------------------------
用正则
D8888D回贴内容-------------------------------------------------------
没有人再给点建议吗!
D8888D回贴内容-------------------------------------------------------
呀,百度,,,有现成的!
D8888D回贴内容-------------------------------------------------------
问题已经解决了,volew和我现在的方法一样。过会我把代码贴出来。
D8888D回贴内容-------------------------------------------------------
$rdf = simplexml_load_file("http://www.test.com/index.rdf");
$arr = array();
$i = 1;
while (isset($rdf->item[$i]->title)) {
$arr['item'][$i]['title1'] = htmlspecialchars($rdf->item[$i]->title1);
$node = $rdf->item[$i]->children('http://purl.org/dc/elements/1.1/');
$arr['item'][$i]['ce'] = htmlspecialchars($node->ce);
$arr['item'][$i]['bt'] = htmlspecialchars($node->bt);
$i++;
}
$i--;
foreach ($arr['item'] as $item) {
print $item['ce']."----".$item['bt']. "
";
}
大概处理过程就是这样,没有详细整理,呵呵!
如有错误,欢迎指正。
上一篇: CSS3教程-过渡
下一篇: mysql-5.6的GTID复制的实现