Wie verwandle ich ein einzelnes Wort in gültiges XML?
-
26-10-2019 - |
Frage
Ich habe den folgenden Code, der eine Zeichenfolge verwandelt, die ich in die Funktion übergasse, in ein Dokument:
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);
}
Das Problem ist, dass ein Teil des Legacy -Code, den ich verwende RANDOM
oder FICTION
. Ich möchte diese Anrufe in gültige XML verwandeln, bevor ich versuche, sie zu analysieren. Im Moment, wenn ich die Funktion mit s = Fiktion aufrufe, gibt sie a zurück SAXParseExeption
Error. Könnte mich jemand auf den richtigen Weg beraten? Wenn Sie Fragen haben, lassen Sie es mich wissen.
Vielen Dank für Ihre Zeit
-Josh
Lösung
Dies erstellt ein XMLDOCument mit einem Elementtest
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 />
Es ist ein bisschen hässlich, aber es wird die XML erstellen, ohne selbst eine Stringarbeit ausführen zu müssen;)
Sie können dies in einem Versuch in Ihrer Methode hinzufügen. Wenn sie sie also nicht als XML lädt, übergibt sie die Zeichenfolge an diese und versucht sie dann zu laden.
Andere Tipps
Haben Sie das scheinbar offensichtliche versucht? <FICTION/>
oder <FICTION></FICTION>
?