これは私のgeneral.xmlファイルです:-
<?xml version="1.0" encoding="UTF-8"?>
<results>
<numFound>10</numFound>
<QTime>4</QTime>
<result>
<distance>1071.59873299109</distance>
<name>Irungattukottai</name>
</result>
<result>
<distance>1892.33578431928</distance>
<name>Valapuram</name>
</result>
</results>
region.xml:-
<childrens>
<child_5068 entity_id="5069" value="Irungattukottai" parent_id="4068"/>
<child_5068 entity_id="7140" value="Valapuram" parent_id="4068"/>
</childrens>
product.xml:-
<products>
<product_id value="1">
<tab_id value="351">
<tab_name value="test1"/>
<dist_region value="5069"/>
<dist_region value="5069"/>
<dist_region value="5069"/>
</tab_id>
</product_id>
<product_id value="2">
<tab_id value="352">
<tab_name value="test2"/>
<dist_region value="4457"/>
<dist_region value="7140"/>
<dist_region value="5069"/>
</tab_id>
</product_id>
</products>
私はこのようなものを試してみたいこの3つのxmlファイルを持っています。
general.xml ファイルの要素で<name>Irungattukottai</name>
、この名前が exit の場合はregion.xml
そこに到達しentity_id
、entity_id が exit の場合はそこに到達し、そこに要素の属性値product.xml
を返す...product_id
私はこのコードを試しています:-
<?php
$g = file_get_contents('general.xml');
$r = file_get_contents('region.xml');
$p = file_get_contents('product.xml');
$general = simplexml_load_string($g);
$region = simplexml_load_string($r);
$product = simplexml_load_string($p);
$name = (string)$general->result->name;
if (strlen(trim($name))==0) exit('name not found');
list($entity) = $region->xpath("//*[@value='$name']/@entity_id");
$entity=(string)$entity;
if (strlen(trim($entity))==0) exit('entity_id not found');
list($prid) = $product->xpath("//dist_region[@value='$entity']/ancestor::product_id/@value");
$prid=(string)$prid;
echo "City Name:- $name, Entity_id:- $entity, Product_id:- $prid";
?>
このコードは完全に機能しますが、値は 1 つだけです。例: -general.xml
最初のルート<name>Irungattukottai</name>
と 2 番目のルートに 2 つのルート<name>Valapuram</name>
がありますが、私のコードは最初の要素のみを取得し、壁の xml ファイルを取得しようとはしません...
これは私の正しい出力です:-
city Name:- Irungattukottai, Entity_id:- 5079, Product_id:- 1
しかし、私はこのタイプの出力をしたい:-
city Name:- Irungattukottai, Entity_id:- 5079, Product_id:- 1
city Name:- Valapuram , Entity_id:- 7140, Product_id:- 2