使用PHP传递的变量检查Xpath属性值

时间:2012-06-19 10:36:13

标签: php xml xpath

只是一个简单的问题,正在尝试不同的方法来实现这一目标,但最终没有成功。我试图使用xpath检查属性值,如果属性值匹配,我在xml中更改该标记的参数。

这有效:

$obj= $xml->xpath('/document/item[@id = "a12sd"]');

这不起作用,因为我需要通过变量传递值来检查属性值

$checkID = "a12sd";

$obj= $xml->xpath('/document/item[@id = $checkID]');

有任何建议我如何纠正这个问题。

编辑:

XML文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
    <item id="a12sd">       
        <name>James</name>
        <pdf>0023.pdf</pdf>
    </item>
    <item id="rdf23">       
        <name>Alex</name>
        <pdf>0178.pdf</pdf>
    </item>
    <item id="2we34">       
        <name>Tom</name>
        <pdf>0886.pdf</pdf>
    </item>
    <item id="123de">       
        <name>Robby</name>
        <pdf>1239.pdf</pdf>
    </item>
</document>

PHP代码:

$id = "a12sd";
$xml = simplexml_load_file('items.xml');  

$who_is_who = $xml->xpath('/document/item[@id = "a12sd"]');             

$who_is_who[0]->name = "Arnold";

$xml->asXml("items.xml");

由于

1 个答案:

答案 0 :(得分:1)

尝试$obj= $xml->xpath('/document/item[@id="'.$checkID.'"]');

<?php
$id = "a12sd";
$xml = simplexml_load_file('items.xml');  

$who_is_who = $xml->xpath('/document/item[@id = "'.$id.'"]');             

$who_is_who[0]->name = "Arnold";

$xml->asXml("items.xml");

?>