XML 文档: "> Test Data Test Data -6ren">
gpt4 book ai didi

xml - 在 coldfusion 中使用定义的模式解析 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:16 26 4
gpt4 key购买 nike

我正在尝试像这样解析 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>

我得到一个 empty array每次。当我从根节点中删除所有属性时,即 <ou_schedule>然后我得到了正确的结果。我错过了什么?

请帮忙。提前致谢。

最佳答案

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

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

似乎在 CF10 中更改了 :node 语法。我找到了这个 Bug Report谈论它。

我刚刚在 CF9 上测试了 :class/:id 并且它有效,但它在 CF10 上崩溃了。我为此稍微修改了 xpath,它在 CF9 和 10 上对我有用。

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

关于xml - 在 coldfusion 中使用定义的模式解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29346384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com