Php xpath来获取所有元素
我使用simplexml解析xml,我可以得到单个节点,但不是我想要的所有节点 范例Php xpath来获取所有元素,php,simplexml,Php,Simplexml,我使用simplexml解析xml,我可以得到单个节点,但不是我想要的所有节点 范例 $xmlObject = simplexml_load_file($xml_file); // load the xml file $cols = $xmlObject->RESULTSET->ROW->COL; foreach ( $cols as $COL) { echo $COL->DATA; } 只给我第一行的第一列,我试
$xmlObject = simplexml_load_file($xml_file); // load the xml file
$cols = $xmlObject->RESULTSET->ROW->COL;
foreach ( $cols as $COL) {
echo $COL->DATA;
}
只给我第一行的第一列,我试过了
$xmlObject = simplexml_load_file($xml_file); // load the xml file
$cols = $xmlObject->xpath('*//COL');
foreach ( $cols as $COL) {
echo $COL->DATA;
}
什么也没有得到
知道我做错了什么吗
<?xml version="1.0" encoding="UTF-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<RESULTSET FOUND="445">
<ROW MODID="45" RECORDID="1">
<COL>
<DATA>Integrating Ethanol</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>train track and gas pump</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>1.jpg</DATA>
</COL>
<COL>
<DATA/>
</COL>
</ROW>
<ROW MODID="29" RECORDID="3">
<COL>
<DATA>Keeping in Balance</DATA>
</COL>
<COL>
<DATA>21</DATA>
</COL>
<COL>
<DATA>book cover of Sweet Invisible Body</DATA>
</COL>
<COL>
<DATA/>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
整合乙醇
火车轨道和煤气泵
1.jpg
保持平衡
21
甜蜜无形的身体的书封面
正确的xpath应该是
//COL
没有
*
我认为您的问题可能是XML名称空间,当我通过使用Google找到的这个工具运行XML时,它给我带来了问题:您可以尝试使用忽略名称空间的以下XPath表达式:
//*[local-name() = 'COL']
此表达式选择名为“COL”的所有节点,无论该节点位于哪个命名空间中 啊,是的,那是我玩的,但是使用了通配符,但是我把它拿出来了,而且纳达蒂斯似乎给了我所有的列项目,不管它们在哪一行,有没有某种方法我可以循环通过这些行,然后是列
//*[local-name() = 'COL']