我有以下代码将我传入函数的字符串转换为文档:
DocumentBuilderFactory dbFactory_ = DocumentBuilderFactory.newInstance();
Document doc_;
void toXml(String s)
{
documentBuild();
DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
doc_ = dBuilder.parse(inputSource);
}
问题是我正在使用的一些遗留代码传递给这个toXml函数一个单词,如RANDOM
或FICTION
。我想在尝试解析之前将这些调用转换为有效的xml。现在,如果我使用s = FICTION调用该函数,则会返回SAXParseExeption
错误。谁能告诉我正确的方法呢?如果您有任何问题,请告诉我。
感谢您的时间
-Josh
答案 0 :(得分:1)
您是否尝试过看似明显的<FICTION/>
或<FICTION></FICTION>
?
答案 1 :(得分:1)
这将创建一个带元素测试的XmlDocument
function buildXml(string s) {
XmlDocument d = new XmlDocument();
d.AppendChild(d.CreateElement(s));
StringWriter sw = new StringWriter();
XmlTextWriter xw = new XmlTextWriter(sw);
d.WriteTo(xw);
return sw.ToString();
}
buildXml("Test"); //This will return <Test />
它有点难看,但它会创建XML,而不必自己做任何字符串工作;)
您可以在方法中的try catch中添加它,因此如果它无法直接将其作为XML加载,则将字符串传递给它,然后尝试加载它。