在coldfusion中解析具有已定义模式的XML

在coldfusion中解析具有已定义模式的XML,xml,coldfusion,xml-parsing,Xml,Coldfusion,Xml Parsing,我正在尝试解析如下所示的XML文档: <cfset local.xml = xmlParse("<file_path>")> <cfset local.getClassID = xmlSearch(local.xml, "//class/id")> <cfdump var="#local.getClassID#"> XML文档: <ou_schedule xmlns="http://www.oracle.com/xmlns" xmln

我正在尝试解析如下所示的XML文档:

<cfset local.xml = xmlParse("<file_path>")>
<cfset local.getClassID = xmlSearch(local.xml, "//class/id")>
<cfdump var="#local.getClassID#">

XML文档

<ou_schedule xmlns="http://www.oracle.com/xmlns" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="<XSD url>">
    <schedule>
        <category>
            <id>Test Data</id>
            <name>Test Data</name>
            <classes>
                <class>
                    <id>Test Data</id>
                    <title>Test Data</title>
                    <description_url>Test Data</description_url>
                    <duration>Test Data</duration>
                    <price>Test Data</price>
                    <instruction_language>Test Data</instruction_language>
                    <start_date>Test Data</start_date>
                    <start_time>Test Data</start_time>
                    <end_time>Test Data</end_time>
                    <location>Test Data</location>
                    <city>Test Data</city>
                    <customer_sat_flag>Test Data</customer_sat_flag>
                    <activity_version_id>Test Data</activity_version_id>
                    <event_id>Test Data</event_id>
                </class>
            </classes>
        </category>
    </schedule>
</ou_schedule>

测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
测试数据
每次我都会得到一个
空数组。当我从根节点删除所有属性时,即。,
然后我得到了正确的结果。 我错过了什么


请帮助。提前感谢。

因为它有一个名称空间,如果您将XPath更改为“/:class/:id”,它应该忽略根节点中的名称空间

<cfset local.getClassID = xmlSearch(local.xml, "//:class/:id")>

似乎:节点语法在CF10中已更改。我发现这是在谈论它

我刚刚在CF9上测试了:class/:id,它工作了,但在CF10上坏了。我对xpath做了一些修改,它在CF9和CF10上对我有效

<cfset local.getClassID = xmlSearch(foo, "//*[local-name() = 'class']/*[local-name() = 'id']")>


我收到错误消息<代码>无法在令牌开始处处理XMLSearch的结果以查找意外冒号。
您的ColdFusion版本是什么?目前我正在使用CF 10,但我也需要它来处理CF 9。我已更新了答案。我还没有在Lucee身上测试过这个好东西!在CF10上遇到这个问题,您的修复成功了。