Php 通过父属性访问值
我希望根据传递的属性通过xpath获得值A-1 我已经从上一页通过php传递了单元的index属性,并且正在通过global GET访问它:Php 通过父属性访问值,php,xpath,simplexml,attributes,parent,Php,Xpath,Simplexml,Attributes,Parent,我希望根据传递的属性通过xpath获得值A-1 我已经从上一页通过php传递了单元的index属性,并且正在通过global GET访问它: $value = intval($_GET['index']); xml: <UNIT index='1'> <ID>A-1</ID> <MANUFACTURER>testing inc.</MANUFACTURER> </UNIT> <UNIT index
$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>
我知道我得到了需要传递的“1”,因为我回显了要检查的$value,但是
它给了我A-2的ID,这将是xml索引号(从0开始)-而不是我的属性索引号。您可以使用该方法查询特定的单元,您需要使用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";
}
使用:
//UNIT[@index=$value]/ID
您没有使用xpath。这类似于$xml->xpath($path)
;编辑的可能副本:此副本:
$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";
}