我有如下XML结构:
<Tickets>
<EventsPoints>
<Event ID="23">
<PerformanceName>U2</PerformanceName>
<EventDate>25/05/2012</EventDate>
<EventPrice>75.00</EventPrice>
</Event>
<Event ID="27">
<PerformanceName>Jedward</PerformanceName>
<EventDate>28/05/2012</EventDate>
<EventPrice>20.00</EventPrice>
</Event>
<Event ID="27">
<PerformanceName>Rolling Stones</PerformanceName>
<EventDate>03/12/2012</EventDate>
<EventPrice>80.00</EventPrice>
</Event>
</EventsPoints>
</Tickets>
基本上,我想在 XML 中搜索某个性能名称, 称“ U2 ”, 然后返回整个 XML 块( 即该性能名称、 事件日期和价格 - 全部以 XML 格式格式化, 保存在一个单独的 xml 文件) 。
这是我的php代码,但似乎没有正确提取数据:
$srcDom = new DOMDocument;
$srcDom->load( /var/www/html/xml/searchfile.xml );
$xPath = new DOMXPath($srcDom);
foreach ($srcDom->getElementsByTagName( Event ) as $event) {
$dstDom = new DOMDocument( 1.0 , utf-8 );
$dstDom->appendChild($dstDom->createElement( EventsPricePoints ));
$dstDom->documentElement->appendChild($dstDom->importNode($event, true));
$allEventsForVenue = $xPath->query(
sprintf(
/Tickets/EventsPoints/Event/PerformanceName[.="U2"]
)
);
foreach ($allEventsForVenue as $event) {
$dstDom->documentElement->appendChild($dstDom->importNode($event, true));
}
$dstDom->formatOutput = true;
$dstDom->save(sprintf( /var/www/html/xml/searchresults1.xml ));
}