gpt4 book ai didi

XMLParse() 在 prolog 错误中不允许抛出内容

转载 作者:行者123 更新时间:2023-12-04 05:34:42 25 4
gpt4 key购买 nike

我目前在使用 XMLParse() 时遇到问题,正如标题所说,它不断抛出这个错误

An error occured while Parsing an XML document.
Content is not allowed in prolog.

我的代码目前非常基本,我只是想让它转储 XML 值。
<cfset XMLPOST = GetHTTPRequestData().content>
<cfset xmlDOM = XMLParse(XMLPOST)>
<cfdump var="#xmlDOM#">

我试过 Ben Nadels确定它是否是 BOM 的方法,他的转储给了我这个输出
[x] - 120
[m] - 109
[l] - 108
[=] - 61
[%] - 37
[3] - 51

在我看来,那个角色没有问题。

XML 正在发布到我们的服务器,所以我想知道是否是导致问题的原因?正在发布的 XML 是这种格式
xml=%3Cjob%3E%0D%0A++++%3Cjobref%3EExample+jobref%3C%2Fjobref%3E%0D%0A++++%3Cjobtitle%3EExample+jobtitle%3C%2Fjobtitle%3E%0D%0A++++%3Cdescription%3EExample+description%3C%2Fdescription%3E%0D%0A%3Cjob%3E%0D%0A++++++++++++

我有一种感觉,这是导致错误的原因?当我在文档中手动将此 XML 指定为其原始形式的变量时
<job>
<jobref>Example jobref</jobref>
<jobtitle>Example jobtitle</jobtitle>
<description>Example description</description>
<job>

并解析该变量,它可以很好地转储。

我假设我需要做的是在尝试解析它之前将 XML Post 格式更改为不同的格式?我曾尝试使用 ToString()但无济于事。

谢谢!

最佳答案

您应该使用 ColdFusion 的 FORM-Scope,而不是使用请求的原始内容,它将为您处理 URLdecode 等,并将正文拆分为单独的变量:
替换:

<cfset XMLPOST = GetHTTPRequestData().content>
<cfset xmlDOM = XMLParse(XMLPOST)>
<cfdump var="#xmlDOM#">
与:
<cfset XMLPOST = FORM.xml>
<cfdump var="#XMLParse(XMLPOST)#">
也许您还想检查它是否是使用 isXML() 发布的有效 XML。 - 功能。

关于XMLParse() 在 prolog 错误中不允许抛出内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107368/

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