我試圖向簡單的XML文檔輸出查詢。我已經多次使用這個相同的代碼進行其他查詢,並且它工作正常。似乎在某個地方的描述字段中存在一個錯誤的字符,XMLformat()不會將其過濾出來。我嘗試過無數REReplace()過濾器無濟於事。也嘗試了Ben Nadel的技術。 http://www.bennadel.com/blog/1155-Cleaning-High-Ascii-Values-For-Web-Safeness-In-ColdFusion.htm和一切都導致了相同的錯誤。我沒有轉儲輸出並搜索不好的字符,我什麼也沒找到。這件簡單的事變成了很神祕的事。我正在使用下面的代碼。Coldfusion XML輸出中的無效XML字符(Unicode:0x1e)
<cfquery name="list" datasource="theDatasource">
SELECT ItemID, ItemCode, BrandName, description
FROM theTable
</cfquery>
<cfxml variable="outputXML">
<itemsBrand>
<cfoutput query="list">
<itemBrand>
<ItemID>#XmlFormat(ItemID)#</ItemID>
<ItemCode>#XmlFormat(ItemCode)#</ItemCode>
<BrandName>#XmlFormat(BrandName)#</BrandName>
<description>#XmlFormat(description)#</description>
</itemBrand>
</cfoutput>
</itemsBrand>
</cfxml>
<cffile action="write" file="#GetDirectoryFromPath(GetCurrentTemplatePath())#itemBrand.xml" output="#toString(outputXML)#"/>
是導致錯誤「無效的XML字符(Unicode:0X1E)在文檔的元素含量被發現。」任何幫助,將不勝感激。
我最終按照Adam的建議轉儲了內容,並通過XML驗證程序運行它。問題是由於Unicode:0x1e字符被隱藏導致的。我不得不在我的文本編輯器中打開查看隱藏字符,刪除有問題的字符,然後將所有代碼複製並粘貼到新文件中。感謝Adam的幫助。 –
NP [等...所以我的回覆足夠長] –
據我可以告訴0x1e不是一個大於符號,但一個不可打印的控制字符? –