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

War es hilfreich?

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>?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top