通过父属性访问值

时间:2010-06-04 12:34:05

标签: php xpath simplexml attributes parent

我希望根据传递的属性获得值A-1到xpath。

我已经通过php从前一页传递了该单元的index属性,并通过全局GET访问它:

$value = intval($_GET['index']);

xml:

<UNIT index='1'>
     <ID>A-1</ID>
     <MANUFACTURER>testing inc.</MANUFACTURER>
</UNIT>
<UNIT index='2'>
     <ID>A-2</ID>
     <MANUFACTURER>testing inc.</MANUFACTURER>
</UNIT>

我正试图用以下方式回应它:

$xml = new SimpleXMLElement('demo.xml',NULL,true);

echo $xml->UNIT[$value]->ID;

我知道我得到了我需要通过的“1”,因为我回应了$ value来检查,但是 它给了我A-2的ID,它是xml索引号(从0开始) - 不是我的属性索引号。

2 个答案:

答案 0 :(得分:1)

您可以使用SimpleXMLElement::xpath方法通过UNIT等XPath查询查询所需的特定//UNIT[@index=2]

$value = intval($_GET['index']);
$xml   = new SimpleXMLElement('demo.xml',NULL,true);
$units = $xml->xpath("//UNIT[@index=$value]"); // xpath returns an array
if (isset($units[0])) {
    echo $units[0]->ID;
} else {
    echo "No unit with index $value";
}

答案 1 :(得分:0)

使用

//UNIT[@index=$value]/ID