使用 staxmate api 写出一个元素

发布于 2024-10-08 19:19:34 字数 140 浏览 2 评论 0原文

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

I am using staxmate to write out an xml document. I want to write out xml elements with a prefix/namespace like "pre:elem". I can construct this manually as "pre" + ":" + "elem" and pass it on to the addElement method of staxmate api. But, is there a better way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱娆 2024-10-15 19:19:34

手动构建不能保证有效,因此它不是一个好的解决方案(您可能已经知道)。正确的方法是获取一个命名空间实例(带有建议的前缀)并使用它进行写入。因此,类似于:

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

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

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

(注意:我会要求将此添加到 StaxMate 常见问题解答

Manually constructing is not guaranteed to work, so it is not a good solution (which you probably knew already). The right way is to get a Namespace instance (with suggested prefix) and use that for writing. So, something like:

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

You can get namespace instances from any container (SMOutputDocument, SMOutputElement).

Without passing namespace object, default is to assume namespace with URI "" (which must be bound to no-prefix).

(note: I'll ask this to be added to StaxMate FAQ)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文