xml作为字符串:
String inputStr = "<f:table f:id=\"1\">\n" +
" <f:name>African Coffee Table</f:name>\n" +
" <f:width>80</f:width>\n" +
" <f:length>120</f:length>\n" +
"</f:table>";
我想将此XML生成到jdom文档:
StringReader stringReader = new StringReader(inputStr);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(stringReader);
但是doc
为空,当我想获取根元素时,我得到了NullPointerException
。
如何从具有名称空间的字符串生成xml?
答案 0 :(得分:0)
运行该代码时,您应该得到一个org.jdom2.input.JDOMParseException
。这就是我得到的:
org.jdom2.input.JDOMParseException:第1行发生错误:元素“ f:table”的前缀“ f”没有绑定。
因此,正如我在评论中提到的那样,您需要为f
前缀提供名称空间URI,如下所示:
String inputStr = "<f:table f:id=\"1\" xmlns:f=\"http://millka_15.namespace\">\n" +
我刚刚使用http://millka_15.namespace
作为占位符,假设您知道实际的名称空间URI应该是什么。
以下代码:
String inputStr = "<f:table f:id=\"1\" xmlns:f=\"http://millka_15.namespace\">\n" +
" <f:name>African Coffee Table</f:name>\n" +
" <f:width>80</f:width>\n" +
" <f:length>120</f:length>\n" +
"</f:table>";
StringReader stringReader = new StringReader(inputStr);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(stringReader);
System.out.println(doc);
输出结果:
[Document: No DOCTYPE declaration, Root is [Element: <f:table [Namespace: http://millka_15.namespace]/>]]