在我的环境中,我使用Java将结果集序列化为XML.它基本上是这样的:
//foreach column of each row
xmlHandler.startElement(uri, lname, "column", attributes);
String chars = rs.getString(i);
xmlHandler.characters(chars.toCharArray(), 0, chars.length());
xmlHandler.endElement(uri, lname, "column");
Run Code Online (Sandbox Code Playgroud)
在Firefox中,XML看起来像这样:
<row num="69004">
<column num="1">10069</column>
<column num="2">sd</column>
<column num="3">FCVolume </column>
</row>
Run Code Online (Sandbox Code Playgroud)
但是当我解析XML时,我得到了a
org.xml.sax.SAXParseException:字符引用" "是无效的XML字符.
我现在的问题是:我必须替换哪些字符,或者如何编码我的字符,它们将是有效的XML?
我绝对喜欢stackoverflow上的那个,因为它干净简单.此外,使用代码/语法hilighting的实时预览非常有用(并且具有激励性).
您最喜欢的Javascript编辑器框架是什么?为什么?
这是如何将字符从Oracle编码为Xml的后续问题?
在我的环境中,我使用Java将结果集序列化为xml.我无法访问输出流本身,只能访问org.xml.sax.ContentHandler.
当我尝试输出CDATA部分中的字符时:
它基本上是这样的:
xmlHandler.startElement(uri, lname, "column", attributes);
String chars = "<![CDATA["+rs.getString(i)+"]]>";
xmlHandler.characters(chars.toCharArray(), 0, chars.length());
xmlHandler.endElement(uri, lname, "column");
Run Code Online (Sandbox Code Playgroud)
我明白了:
<column><![CDATA[33665]]></column>
Run Code Online (Sandbox Code Playgroud)
但我想要这个:
<column><![CDATA[33665]]></column>
Run Code Online (Sandbox Code Playgroud)
那么如何使用Sax ContentHandler输出CDATA部分?