Php xpath来获取所有元素

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; } 只给我第一行的第一列,我试

我使用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->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']