<1:1>
<1:b/>
<1:body>
<1:P>
<1:PPR></1:PPR>
<1:r>
<1:rPR></1:rPR>
<1:t>text here</1:t>
</1:r>
</1:P>
</1:body>
</1:1>
我的xml看起来像那样,我需要得到&#34; 1:t&#34;来自每一个&#34; 1:p&#34;
但我遇到了一些问题,因为我不能$document->1:1->1:body->1:P->1:r->1:t
因为它不喜欢冒号
任何人都可以想到这个吗? 我试过把它们放在变量中,但没有快乐......
这是我到目前为止所拥有的:
$document = simplexml_load_string($xml);
$body = "1:body";
$r = "1:r";
$t = "1:t";
foreach ($document->$body as $p) {
echo $p->$r->$t;
}
答案 0 :(得分:0)
XML元素名称不能以数字开头。您的代码将产生大量警告,遗憾的是,XML无法解析。
Warning: simplexml_load_string(): Entity: line 1: parser error : StartTag: invalid element name in /Users/joelhinz/Kod/test/test.php on line 16
Warning: simplexml_load_string(): <1:1> in /Users/joelhinz/Kod/test/test.php on line 16
Warning: simplexml_load_string(): ^ in /Users/joelhinz/Kod/test/test.php on line 16
Warning: simplexml_load_string(): Entity: line 1: parser error : Extra content at the end of the document in /Users/joelhinz/Kod/test/test.php on line 16
Warning: simplexml_load_string(): <1:1> in /Users/joelhinz/Kod/test/test.php on line 16
Warning: simplexml_load_string(): ^ in /Users/joelhinz/Kod/test/test.php on line 16
Warning: Invalid argument supplied for foreach() in /Users/joelhinz/Kod/test/test.php on line 20
我想你必须将它转换为正确的XML,或者使用一个不那么挑剔的解析器。
关于冒号问题,如果你让其他人工作,你可能会$document->{1:1}->{1:body}
等。