这是我的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>
我有这三个xml文件,我想尝试这样的事情。
general.xml文件元素<name>Irungattukottai</name>
如果此名称在region.xml
中退出,则到达entity_id
如果entity_id在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";
?>
这段代码是完美的,但是只有一个值,例如:-general.xml
在第一个<name>Irungattukottai</name>
和第二个根<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
参考方案
使用以上两种方法都可以尝试以下方法:
<?php
foreach($general->result as $row){
if(isset($row->name)){
//create one variable and store in value.
$name = $row->name;
//all you code for region.xml and then for product.xml
}
echo "name:- $name,Entity:- $entity, product:- $prid"."<br>";
}
?>
Div单击与单选按钮相同吗? - php有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date…
PHP-复选框组 - php我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…
jQuery如果选中则启用动态输入文本 - php我正在使用PHP生成具有表格的表格,例如:<table class="table table-hover"> <thead> <tr> <th class="table-checkbox"> </th> <th> Description </…
故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…
CodeIgniter更新查询被执行两次 - php我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…