【发布时间】:2017-01-05 08:50:34
【问题描述】:
我需要取出数据的 xml 文件很大,并且在孩子中有很多内部孩子。我需要查询的 XML 看起来像图片中的样子,并且它有更多的 Ref 孩子。 xml structure
我需要获取具有正确 Info->ID 的公司节点。该节点有 3 个 Ref 节点,我需要从具有正确 Who 的节点获取 Date。
我得到了这个丑陋的代码:
$query_pod = "//Seller/Company/Info/ID[ID = 'IV'] | //Seller/Company/Ref/Who[Who = 'VA'] | //Seller/Company/Ref/Date";
foreach ($xpath->query( $query_pod ) as $pod)
{
$pod_dates = $xpath->query( "//Seller/Company/Ref/Who[Who = 'VA'] | //Seller/Company/Ref/Date", $pod );
$pod_date = $pod_dates->item(0)->nodeValue;
}
我试过更短,但我无法像这样在 [] 中获取选择元素:
$query_pod = "//Seller/Company/Info[ID = 'IV']";
foreach ($xpath->query( $query_pod ) as $pod)
{
$pod_dates = $xpath->query( "//Seller/Company/Ref/Date[Who = 'VA'], $pod );
$pod_date = $pod_dates->item(0)->nodeValue;
}
有人可以帮忙吗?我是 xpath 的新手。
【问题讨论】:
-
$pod_dates = $xpath->query("//Seller/Company/Ref/Date[Who = 'VA']", $pod );我的真实代码中没有错误或写入错误。