我必须从xml文档中读取编码和版本。
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
即;编码应返回UTF-8,版本返回1.0
输入将是有效的xml文档。
请帮忙
答案 0 :(得分:3)
ColdFusion使用的Java XML解析器通过getEncoding()
和getVersion()
公开该信息。这将适用于ColdFusion,但不适用于Lucee或Railo。
<cfsavecontent variable="foo">
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
</cfsavecontent>
<cfset xml = XMLParse(trim(foo))>
<cfdump var="#{
encoding: xml.getEncoding(),
version: xml.getVersion()
}#">
在ColdFusion 10&amp; amp; 11。
答案 1 :(得分:1)
您可以将xml转换为字符串,然后执行正则表达式以获取版本和编码。
<cfsavecontent variable="foo">
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
</cfsavecontent>
<cfset xml = XMLParse(trim(foo))>
<cfset xmlString = ToString(xml)>
<cfset Version = REMatchNoCase("version=""(.+?)""", xmlString) >
<cfset version = REMatch("(?s)"".*?""", Version[1]) >
<cfset version = replace(version[1],'"',"","all") >
<cfdump var="#version#">
<cfset encoding = REMatchNoCase("encoding=""(.+)""", xmlString) >
<cfset encoding = REMatch("(?s)"".*?""", encoding[1]) >
<cfset encoding = replace(encoding[1],'"',"","all") >
<cfdump var="#encoding#">