ホームページ >バックエンド開発 >PHPチュートリアル >Gaofen オンライン ヘルプ XML 解析

Gaofen オンライン ヘルプ XML 解析

WBOY
WBOYオリジナル
2016-06-23 14:25:06890ブラウズ

この投稿は HUENKE によって最終編集されました: 2013-10-25 15:58:22

xml

<?xml version="1.0" encoding="utf-8"?><nodes>	<node id="c5569e2c-0f4a-4ec2-86ba-736b79eca18c" name="A公司"		type="0">		<node id="4f2b55e9-e10a-496b-8bca-60e6f26daee5" name="部门1" type="1">			<node id="363" name="叶子1" type="2" playurl="http://XXXXXXX363" />		</node>		<node id="0c5ce42f-ba31-4b7a-8173-79ecae4a73ca" name="部门2" type="1">			<node id="241" name="叶子1" type="2"	playurl="http://xxxxx=241" />			<node id="356" name="叶子1" type="2" playurl="xxxxxxxxx=356" />		</node>	</node></nodes>


構造はノードの下にノード、下にノードがあります
トリプルループを実行したいです
foreach()
{ company会社名を保存してください。

SimpleXML が解析されませんでした
簡単なデバッグを手伝ってもらえますか?

どのようなデータ形式が必要ですか? 、自分でデータ構造を整理しましょう
<?php$string = <<<XML<?xml version="1.0" encoding="utf-8"?><nodes>    <node id="c5569e2c-0f4a-4ec2-86ba-736b79eca18c" name="A公司"        type="0">        <node id="4f2b55e9-e10a-496b-8bca-60e6f26daee5" name="部门1" type="1">            <node id="363" name="叶子1" type="2" playurl="http://XXXXXXX363" />        </node>        <node id="0c5ce42f-ba31-4b7a-8173-79ecae4a73ca" name="部门2" type="1">            <node id="241" name="叶子1" type="2"    playurl="http://xxxxx=241" />            <node id="356" name="叶子1" type="2" playurl="xxxxxxxxx=356" />        </node>    </node></nodes>XML;$xml = new SimpleXMLElement($string);$result = $xml->xpath('//node/@name');while(list( , $node) = each($result)) {    echo '@name: ',$node,"\n";}$result = $xml->xpath('//node/@id');while(list( , $node) = each($result)) {    echo '@id: ',$node,"\n";}$result = $xml->xpath('//node[@type=1]/../@id');while(list( , $node) = each($result)) {    echo '@部门的parent_id: ',$node,"\n";}$result = $xml->xpath('//node[@type=2]/../@id');while(list( , $node) = each($result)) {    echo '@叶子的parent_id: ',$node,"\n";}?>

$s =<<< XML<?xml version="1.0" encoding="utf-8"?><nodes>    <node id="c5569e2c-0f4a-4ec2-86ba-736b79eca18c" name="A公司"        type="0">        <node id="4f2b55e9-e10a-496b-8bca-60e6f26daee5" name="部门1" type="1">            <node id="363" name="叶子1" type="2" playurl="http://XXXXXXX363" />        </node>        <node id="0c5ce42f-ba31-4b7a-8173-79ecae4a73ca" name="部门2" type="1">            <node id="241" name="叶子1" type="2"    playurl="http://xxxxx=241" />            <node id="356" name="叶子1" type="2" playurl="xxxxxxxxx=356" />        </node>    </node></nodes>XML;$xml = simplexml_load_string($s);foreach($xml->node as $node) {  foreach($node->attributes() as $k=>$v) echo "$k => $v\n";  foreach($node->node as $node) {    foreach($node->attributes() as $k=>$v) echo "$k => $v\n";    foreach($node->node as $node) {      foreach($node->attributes() as $k=>$v) echo "$k => $v\n";    }  }}
id => A社
type => 4f2b55e9- e1 0a-496b-8bca -60e6f26daee5
名前 => 1
id => 363 タイプ => 2
id => 0c5 ce42f -ba31-4b7a-8173-79ecae4a73ca

名前 => 部門 2

id => 241

名前 => 2

再生 URL => =241

id => 356
name => 2

playurl => xxxxxxxxx=356​​


部門 1 など

部門 2

。 。 。

もう 1 つあげておきます。自分で修正するとツリーになります

<?php$string = <<<XML<?xml version="1.0" encoding="utf-8"?><nodes>    <node id="c5569e2c-0f4a-4ec2-86ba-736b79eca18c" name="A公司"        type="0">        <node id="4f2b55e9-e10a-496b-8bca-60e6f26daee5" name="部门1" type="1">            <node id="363" name="叶子1" type="2" playurl="http://XXXXXXX363" />        </node>        <node id="0c5ce42f-ba31-4b7a-8173-79ecae4a73ca" name="部门2" type="1">            <node id="241" name="叶子1" type="2"    playurl="http://xxxxx=241" />            <node id="356" name="叶子1" type="2" playurl="xxxxxxxxx=356" />        </node>    </node></nodes>XML;$xml = new SimpleXMLElement($string);// var_export($xml);$xmlIterator = new RecursiveIteratorIterator(    new SimpleXMLIterator($string),    RecursiveIteratorIterator::SELF_FIRST);foreach ($xmlIterator as $nodeName => $node) {    echo str_repeat('-', (int)$node['type']);    echo $node['id'], ',', $node['name'], PHP_EOL;}?>


上の #6
$xml = new SimpleXMLElement($string);
この文は削除できます。前のデバッグ中に残されたものです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。