gpt4 book ai didi

xpages - 使用 SSJS 创建 xml 文件

转载 作者:行者123 更新时间:2023-12-01 23:00:23 24 4
gpt4 key购买 nike

我想在服务器上使用 SSJS 创建一个 xml 文件。有没有办法这样做?任何人都可以提供一个示例代码来在服务器上创建一个 xml 文件。

最佳答案

有一些方法。看似最简单的方法是创建一个看起来像 XML 的字符串。

下一个是使用 Java DOM 类。有an article描述它。

最后你可以使用 SAX带一点helper class

让我们知道怎么回事。

更新 :这将是我的@Michael 代码示例版本:

<?xml version="1.0" encoding="UTF-8"?>
<!-- XPage which is not rendered but returns data like XML, JSON, etc. -->
<!-- More: http://www.wissel.net/blog/d6plinks/shwl-7mgfbn -->

<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">
<xp:this.beforeRenderResponse><![CDATA[#{javascript:try {
var out = facesContext.getOutputStream();
var exCon = facesContext.getExternalContext();
var response = exCon.getResponse(); // get the response context
// set content type, e.g. ...
response.setContentType("text/xml");
// set caching option
response.setHeader("Cache-Control", "no-cache");
// write XML output ...
var result = new biz.taoconsulting.xmltools.SimpleXMLDoc();
result.setOut(out);
result.openTag("result");
result.dateTag("created", new java.util.Date());
result.addSimpleTag("Author",@UserName);
result.openTag("FruitList");
result.addComment("Stephan really likes the fruits example");
var attributes = new java.util.HashMap();
attributes.add("name","Durian");
attributes.add("color","white");
attributes.add("taste","Don't ask");
result.addEmptyTag("fruit",attributes);
result.closeDocument();
// close the output
exCon.responseComplete();
out.close();
} catch (e) {
print(e.toString());
}}]]>
</xp:this.beforeRenderResponse>
</xp:view>

注意这里的区别:
  • 我使用 beforeRenderResponse 事件
  • 访问 outputStream 而不是 writer(在 afterRenderResponse 事件中无法访问流)
  • 设置响应完成以阻止页面进一步输出,因此您可以简单地在页面上输入注释
  • 辅助类的使用

  • 当您阅读辅助类的源代码时,似乎有点奇怪:为什么不在构造函数中使用输出流,这样您就不会错过它? - 我今天会添加第二个构造函数,但是如果我喜欢,无参数构造函数允许我将该类定义为托管 bean。

    关于xpages - 使用 SSJS 创建 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23510457/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com