用staxmate api写出一个元素

时间:2010-12-24 19:47:28

标签: xml stax staxmate

我正在使用staxmate写出一个xml文档。我想写出带有前缀/命名空间的xml元素,如“pre:elem”。我可以手动构造为“pre”+“:”+“elem”并将其传递给staxmate api的addElement方法。但是,有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

手动构建并不能保证有效,因此它不是一个好的解决方案(您可能已经知道)。正确的方法是获取一个Namespace实例(带有建议的前缀)并将其用于写入。所以,像:

SMOutputDocument doc = ...;
SMNamespace ns = doc.getNamespace("http://mynamespaces.com", "pre");
SMOutputElement elem = doc.addElement(ns, "root");
// ... and so forth

您可以从任何容器(SMOutputDocument,SMOutputElement)获取名称空间实例。

如果没有传递名称空间对象,则默认使用URI“”(必须绑定到无前缀)的名称空间。

(注意:我会要求将其添加到StaxMate FAQ