【问题标题】:PHP retrieving XML tagnamesPHP 检索 XML 标记名
【发布时间】:2011-07-27 05:06:39
【问题描述】:

我实际上对这些 XML 东西很陌生。我确实使用http://www.php.net/manual/en/intro.dom.php了解有关 DOMDocument、DOMNOdeList 等的信息

所以这就是问题..

http://jobhits.co.uk/services/rss?k=job

上面的提要返回一个 XML 文档。我可以使用这些代码成功检索标题、描述和链接等标签名称

$doc->load('http://jobhits.co.uk/services/rss?k=job');
$items = $doc->getElementsByTagName("item");

foreach($items as $item){
    $titles[] = $item->getElementsByTagName("title");
}

问题是该文档中有一个特定的'tagname-like'

<a10:updated></a10:updated>

我尝试使用

$update[] = $item->getElementsByTagName("a10:updated");

..这是一个失败

这是一个示例 xml http://piratelufi.com/ark/gettagname.xml 或者您可以使用上面的加载方法中的字符串:)

顺便说一句,我不能尽可能多地使用 simpleXML 和预定义类 谢谢 :D

【问题讨论】:

标签: php xml dom simplexml tagname


【解决方案1】:

【讨论】:

  • 失败的问题猜我没读好。非常感谢你:)
  • 好吧,命名空间是任何人在刚开始使用 xml/DOM 时都会遇到的默认问题,你是个好伙伴 :)
【解决方案2】:

a10 jsut 表示更新的元素来自不同的命名空间。冒号: 在此上下文中是一个特殊字符。 在示例 xml(后一个 url)的开头,可以找到此命名空间的定义:&lt;rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"&gt;。 所以你需要getElementsByTagNameNS。我推测类似于:getElementsByTagNameNS("http://www.w3.org/2005/Atom","updated")might help.

【讨论】:

  • 很好解释,我会写这个。这就是 XML xD 中的命名空间,谢谢
猜你喜欢
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 2012-08-12
  • 1970-01-01
  • 2014-04-02
相关资源
最近更新 更多