我正在使用 staxmate 写出一个 xml 文档。我想写出带有前缀/命名空间的xml元素,如“pre:elem”。我可以手动将其构造为“pre”+“:”+“elem”并将其传递给 staxmate api 的 addElement 方法。但是,有没有更好的方法来做到这一点?
问问题
220 次
1 回答
1
手动构建不能保证工作,所以它不是一个好的解决方案(你可能已经知道了)。正确的方法是获取一个命名空间实例(带有建议的前缀)并将其用于编写。所以,像:
SMOutputDocument doc = ...;
SMNamespace ns = doc.getNamespace("http://mynamespaces.com", "pre");
SMOutputElement elem = doc.addElement(ns, "root");
// ... and so forth
您可以从任何容器(SMOutputDocument、SMOutputElement)中获取命名空间实例。
在不传递命名空间对象的情况下,默认假定命名空间带有 URI ""(必须绑定到无前缀)。
(注意:我会要求将此添加到StaxMate 常见问题解答中)
于 2011-01-05T22:13:55.237 回答