クエリを単純な XML ドキュメントに出力しようとしています。この同じコードを他のクエリに複数回使用しましたが、うまくいきました。説明フィールドのどこかに不適切な文字があり、XMLformat() がそれを除外していないようです。多数の REReplace() フィルターを試しましたが、役に立ちませんでした。ここにある Ben Nadel のテクニックも試してみました。http://www.bennadel.com/blog/1155-Cleaning-High-Ascii-Values-For-Web-Safeness-In-ColdFusion.htmとすべて同じエラーが発生しました。出力をダンプして不正な文字を検索しましたが、何も見つかりませんでした。この単純なことは、かなりの謎に変わりました。以下のコードを使用しています。
<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) が見つかりました」というエラーが発生します。どんな助けでも大歓迎です。