0
<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はそのように見えます。すべての「1:p」から「1:t」を取得する必要があります

$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;
}
4

1 に答える 1

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}などを行うことができます.

于 2013-10-05T12:51:51.800 に答える