Php simplexml如何处理带前缀的元素?

Php simplexml如何处理带前缀的元素?,php,simplexml,Php,Simplexml,在应用程序中,simplexml将rss提要转换为对象,元素非常容易引用。前缀元素(例如)的引用方式与对象中的非前缀元素($item->this)相同 我在php.net上的手册中没有找到任何信息。您要找的是。注册每个名称空间,然后可以像平常一样使用每个节点。您要查找的是。注册每个名称空间,然后就可以像平常一样使用每个节点。不完全如此。当您对表示名称空间XML的对象执行print_r()或var_dump()时,您会注意到所有名称空间节点都丢失了。有几种方法可以获取名称空间节点。一种方法是结合使

在应用程序中,simplexml将rss提要转换为对象,元素非常容易引用。前缀元素(例如
)的引用方式与对象中的非前缀元素(
$item->this
)相同


我在php.net上的手册中没有找到任何信息。

您要找的是。注册每个名称空间,然后可以像平常一样使用每个节点。

您要查找的是。注册每个名称空间,然后就可以像平常一样使用每个节点。

不完全如此。当您对表示名称空间XML的对象执行
print_r()
var_dump()
时,您会注意到所有名称空间节点都丢失了。有几种方法可以获取名称空间节点。一种方法是结合使用:

$xml=simplexml\u load\u文件('some/namespaced/xml/file.xml');
$xml->registerXPathNamespace('前缀','http://Namespace/Uri/Here');
$xml->xpath('//前缀:node')//获取所有XML节点。
另一种方法是用于获取子节点:

$xml = simplexml_load_file('some/namespaced/xml/file.xml');
$xml->children('prefix', true); //get all nodes with the 'prefix' prefix that are direct descendants of the root node.
$xml->someNode->children('blah', true); //get all nodes with the 'blah' prefix that are direct descendants of <someNode>
$xml=simplexml\u load\u文件('some/namespaced/xml/file.xml');
$xml->children('prefix',true)//获取具有“prefix”前缀的所有节点,这些节点是根节点的直接后代。
$xml->someNode->children('blah',true)//获取所有具有“blah”前缀的节点,这些节点是

不太好。当您对表示名称空间XML的对象执行
print_r()
var_dump()
时,您会注意到所有名称空间节点都丢失了。有几种方法可以获取名称空间节点。一种方法是结合使用:

$xml=simplexml\u load\u文件('some/namespaced/xml/file.xml');
$xml->registerXPathNamespace('前缀','http://Namespace/Uri/Here');
$xml->xpath('//前缀:node')//获取所有XML节点。
另一种方法是用于获取子节点:

$xml = simplexml_load_file('some/namespaced/xml/file.xml');
$xml->children('prefix', true); //get all nodes with the 'prefix' prefix that are direct descendants of the root node.
$xml->someNode->children('blah', true); //get all nodes with the 'blah' prefix that are direct descendants of <someNode>
$xml=simplexml\u load\u文件('some/namespaced/xml/file.xml');
$xml->children('prefix',true)//获取具有“prefix”前缀的所有节点,这些节点是根节点的直接后代。
$xml->someNode->children('blah',true)//获取所有具有“blah”前缀的节点,这些节点是

通过前缀,您的意思是说像
这样的名称空间是的,对不起。有一个例子旁边的乙二醇那里,但我不知道它去了。我不需要获取名称空间,我只希望能够通过名称引用元素并获取其中的值。下面是一个示例6540668 Movies x264By前缀,您的意思是说类似
的名称空间是,对不起。有一个例子旁边的乙二醇那里,但我不知道它去了。我不需要获取名称空间,我只希望能够通过名称引用元素并获取其中的值。这将注册命名空间以供使用,而不是与
->
运算符一起使用。@crashspeed:你说得对,我没在想。他实际上在寻找的是你说的,所以是的:)这取决于你所说的“像你通常会的那样”是什么意思。这将注册命名空间以供使用,而不是与
->
运算符一起使用。@crashspeed:你说得对,我没在想。他真正想要的是你说的,所以是的:)谢谢你,我会调查的。有道理,还有一个问题。当我遇到这样的情况时会发生什么:x264 720p如果我已经使用someurl获取报表的原始元素的childern,那么我可以使用$attr=$report->children('someurl')吗?听起来应该可以。如果没有,我建议问一个新问题。评论格式不利于问答。谢谢你,我会调查的。有道理,还有一个问题。当我遇到这样的情况时会发生什么:x264 720p如果我已经使用someurl获取报表的原始元素的childern,那么我可以使用$attr=$report->children('someurl')吗?听起来应该可以。如果没有,我建议问一个新问题。注释格式不利于问答。