Java 如何将单个单词转换为有效的xml?

Java 如何将单个单词转换为有效的xml?,java,xml,document,xml-parsing,saxparseexception,Java,Xml,Document,Xml Parsing,Saxparseexception,我有以下代码,可以将传递到函数中的字符串转换为文档: DocumentBuilderFactory dbFactory_ = DocumentBuilderFactory.newInstance(); Document doc_; void toXml(String s) { documentBuild(); DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder(); StringReader reader = ne

我有以下代码,可以将传递到函数中的字符串转换为文档:

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
virtual
。我想在尝试解析之前将这些调用转换为有效的xml。现在,如果我用s=虚构调用函数,它将返回一个
saxparsexeption
错误。有谁能告诉我做这件事的正确方法吗?如果你有任何问题,请告诉我

谢谢你抽出时间


-Josh

您是否尝试过看似显而易见的
方法?

这将创建一个带有元素测试的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 />
函数buildXml(字符串s){
XmlDocument d=新的XmlDocument();
d、 AppendChild(d.CreateElement);
StringWriter sw=新的StringWriter();
XmlTextWriter xw=新的XmlTextWriter(sw);
d、 写入(xw);
返回sw.ToString();
}
buildXml(“测试”)//这会回来的
这有点难看,但它可以创建XML,而无需自己执行任何字符串工作;)


您可以将其添加到方法中的try-catch中,这样,如果它无法直接将其作为XML加载,它会将字符串传递给它,然后尝试加载它。

首先,您需要详细说明当有人传入字符串时,您想要的有效XML输出。目前的行为可以说是正确的,因为这不是有效的XML,所以您必须执行某种转换才能将其“包装”到XML文档中。是的,这是我的第一直觉,但问题是,我必须执行字符串操作来检查并添加“@Grammin”,恐怕您无法真正摆脱这一点,因为XML文档必须至少有一个根元素。谢谢你的回答david,这正是我想要的,只是有时候我输入的字符串已经是有效的XML。如何检查我的字符串s是否为有效的xml?“您可以将其添加到方法中的try catch中,这样,如果无法将其作为xml直接加载,它会将字符串传递给该字符串,然后尝试加载它。”非常感谢您的绝妙解决方案!相当圆滑。不过,我希望它不会表现得很好;)