0

関数に渡す文字列をドキュメントに変換する次のコードがあります。

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);
}

問題は、私が使用しているレガシーコードの一部が、RANDOMまたはのような1つの単語をこのtoXml関数に渡すことですFICTION。解析を試みる前に、これらの呼び出しを有効なxmlに変換したいと思います。今、s = FICTIONで関数を呼び出すと、SAXParseExeptionエラーが返されます。誰かがこれを行う正しい方法について私にアドバイスできますか?ご不明な点がございましたら、お気軽にお問い合わせください。

お時間をいただきありがとうございます

-ジョシュ

4

2 に答える 2

1

一見当たり前のように見えます<FICTION/><FICTION></FICTION>

于 2011-01-27T18:25:11.007 に答える
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を作成できます;)

これをメソッドのtrycatchに追加して、XMLとして直接ロードできない場合は、文字列をthisに渡してから、ロードを試みます。

于 2011-01-27T19:19:04.893 に答える