php – 如何获取simplexml对象的所有元素
发布时间:2020-05-25 09:02:10 所属栏目:PHP 来源:互联网
导读:好的,我完全被这里难住了.我发现了类似的问题,但答案似乎不适用于我的具体问题.我已经开了好几天了. 我在这里有这个simplexml对象(它实际上比这更长,很多,但是我正在删除所有无关的东西,所以你实际上会看到它): SimpleXMLElement Object( [SubjectClassifica
|
好的,我完全被这里难住了.我发现了类似的问题,但答案似乎不适用于我的具体问题.我已经开了好几天了. 我在这里有这个simplexml对象(它实际上比这更长,很多,但是我正在删除所有无关的东西,所以你实际上会看到它): SimpleXMLElement Object
(
[SubjectClassification] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Authority] => Category Code
[Value] => s
[Id] => s
)
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Authority] => Subject
[Value] => Sports
[Id] => 54df6c687df7100483dedf092526b43e
)
)
[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Authority] => Subject
[Value] => Professional baseball
[Id] => 20dd2c287e4e100488e5d0913b2d075c
)
)
)
)
我通过对包含以下内容的变量执行print_r来获取此代码块: $subjects->SubjectClassification->children(); 现在,我想了解subjectClassification数组的所有元素.他们都是!但是当我这样做时: $subjects->SubjectClassification; 或这个: $subjects->SubjectClassification->children(); 或者,如果我尝试通过循环获取所有数组元素,我得到的是: SimpleXMLElement Object
(
[@attributes] => Array
(
[Authority] => Category Code
[Value] => s
[Id] => s
)
)
为什么?我怎样才能得到一切? 您可以使用xpath执行此操作.它是我找到的最简单的方法和最有效的方法,并减少了对大量for循环的需求,以及解决项目的问题.要获得所需的所有节点,您可以使用:如果你的xml是这样的: <Subjects> <SubjectClassification> </SubjectClassification> <SubjectClassification> </SubjectClassification> <SubjectClassification> </SubjectClassification> </Subjects> 然后,要获得数组中的所有主题分类,您可以执行以下操作: $subject_classifications = $xml->xpath("//SubjectClassification");
xml变量引用主simplexml对象,即使用simplexml加载的文件. 然后你可以使用这样的foreach循环迭代数组: foreach($subject_classifications as $subject_classification){
echo (string) $subject_classification->Authority;
echo (string) $subject_classification->Value;
echo (string) $subject_classification->Id;
}
你的结构可能会有所不同,但无论如何你都会有所了解你可以在这里看到一篇来自IBM的好文章“Using Xpath With PHP”: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
