过滤XML文件

时间:2014-01-28 19:40:15

标签: php xml json xpath

我正在尝试使用表单来过滤XML文件,并使用xpath进行toruble以获得所需的结果。

<?php
$filterHeading = 'CD';
$filterText = '1989';

$filename = "xml/xml_cd.xml";
$xml = simplexml_load_file($filename);

echo 

$result = $xml->xpath('//' + $filterHeading + '[YEAR="' + $filterText + '"]');

print_r($result);


?>

我的目标是使用这个PHP脚本最终从网页中获取变量(标题/文本)并以JSON格式显示。但是,我无法让XML过滤器本身工作 - 任何想法?

提前致谢!

编辑

XML

<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>

1 个答案:

答案 0 :(得分:0)

节点YEAR本身不等于1989,其中包含文本。所以

//CD[YEAR/text()="1989"]

会做到这一点。在您的代码中:

$result = $xml->xpath('//'.$filterHeading.'[YEAR/text()="'.$filterText.'"]');