嘿,基本上有一个庞大的XML文档,有很多节点n个属性值和所有爵士乐。
我想非常懒,因为我对XML / PHP很糟糕,谷歌似乎在这个场合让我失望。
是否可以获取XML文档中的每个元素并使其成为PHP变量?
因此,如果我的XML Doc可能就像......
<wrap>
<sub></sub>
<subsub></subsub>
<sub></sub>
<subsub></subsub>
<sub2></sub2>
<sub3 value=''></sub3>
<sub4 value=''></sub4>
</wrap>
因此无论标签/节点的名称是什么,它都会以递归方式检查将其全部转换为php变量的文档。所以例如他们最终看起来可能。 $包; $子1; $子[2]; $ SUB2; $ SUB3; $ SUB4; $ SUB3 [ '值']; $ SUB4 [ '值'];
所以我很聪明地深入研究可能就像8个孩子一样?
这是可能的还是我必须打出类似的 $ sub1 = $ xml-&gt; wrap-&gt; sub 1;因为那就像...超过1k行代码,我不想存在大声笑。
只是让xml Feed为HERE
感谢您的时间:)
答案 0 :(得分:1)
$xml = simplexml_load_string($response);
// $response is your xml file/output string
然后你可以像这样引用$ xml对象中的元素
$xml->children('yourschema')->children('yoururn')->Tag1->Tag2
答案 1 :(得分:0)
您建议的方法确实没有意义,因为您最终会得到一些与原始XML一样复杂的东西,并且需要尽可能多地解析。因此,使用DOM parser或SimpleXML可能是一种理智的方式。
那就是说,我怀疑像xpath(DOM或SimpleXML)这样的东西也可能会有所帮助,如果你只是试图提取某些信息并且不太关心XML的大部分内容
答案 2 :(得分:0)
将xml数据加载到simpleXML元素后,您可以轻松地访问它。例如:
$xml = new SimpleXMLElement($input_xml_string);
foreach($xml->sub as $value) {
echo $value->subsub;
}
虽然小心sub,因为它是一个保留字。您可能需要将其包含在括号$ xml-&gt; {sub}
中阅读http://www.php.net/manual/en/simplexml.examples-basic.php
您必须使用DOM对象来执行更复杂的操作,例如删除子项。