我希望根据传递的属性获得值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开始) - 不是我的属性索引号。
答案 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