0

我无法弄清楚或找出如何permission="allowed"使用 PHP 解析这个 xml 中的值simplexml_load_file

基本结构是

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:gd="http://schemas.google.com/g/2005" xmlns:yt="http://gdata.youtube.com/schemas/2007" gd:etag="W/&quot;DkEDSH47eCp7I2A9WhJbEEQ.&quot;">
<yt:accessControl action="comment" permission="allowed" />
<yt:accessControl action="commentVote" permission="allowed" />
<yt:accessControl action="videoRespond" permission="moderated" />
<yt:accessControl action="rate" permission="allowed" />
<yt:accessControl action="embed" permission="allowed" />
<yt:accessControl action="list" permission="allowed" />
<yt:accessControl action="autoPlay" permission="allowed" />
<yt:accessControl action="syndicate" permission="allowed" />

如何获得permission=allowed最后一行的属性值?

4

2 回答 2

2

您想使用XPath来检索记录,它是一种 XML 查询语言。

请参阅SimpleXMLElement 的 xpath()registerXPathNamespace()方法。W3Schools在此处解释 XPath 的语法

对于这个 XML

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
   <title>My Book</title>
</book>
EOD;

你会像这样注册一个命名空间:

$sxe = new SimpleXMLElement($xml);
$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');
于 2012-09-20T00:29:14.273 回答
0

这太烦人了……

(在哪里$xml = simplexml_load_file($source);

我可以通过以下方式访问权限属性:

$xml->children('http://gdata.youtube.com/schemas/2007')->accessControl[4]->attributes()->permission;
于 2012-09-20T02:09:04.507 回答