Как мне превратить одно слово в действительный xml?

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

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 ответа

Решение

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

Вы пробовали, казалось бы, очевидное <FICTION/> или же <FICTION></FICTION>?

Другие вопросы по тегам