Как мне превратить одно слово в действительный xml? - PullRequest
0 голосов
/ 27 января 2011

У меня есть следующий код, который превращает строку, которую я передаю в функцию, в документ:

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

Ответы [ 2 ]

1 голос
/ 27 января 2011

Это создает XmlDocument с элементом test

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 в вашем методе, чтобы, если ему не удалось загрузить его в виде XML-кода напрямую, он передает ему строку и затем пытается загрузить ее.

1 голос
/ 27 января 2011

Вы пробовали кажущееся очевидным <FICTION/> или <FICTION></FICTION>?

...