Как мне превратить одно слово в действительный 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>
?