我想在服务器上使用SSJS创建一个xml文件。有没有办法做到这一点?任何人都可以请示例代码来创建服务器上的xml文件。使用SSJS创建xml文件
3
A
回答
6
有很多方法。看起来最简单的一个是创建一个看起来像XML的字符串。
下一个会使用Java DOM类。有an article描述它。
最后,你可以使用SAX一点点helper class
让我们知道如何去。
更新:这将是我的版本@迈克尔的代码示例:
<?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,而不是写入器(流在afterRenderResponse事件中不可访问)
- 设置响应完成t O停止进一步输出的页面,这样你就可以简单地输入它做什么
- 使用辅助类
,当你阅读的辅助类的来源是什么,似乎有点古怪的网页上留言:为什么不在构造函数中使用输出流,所以你不会错过它? - 我今天会添加第二个构造函数,但无参数构造函数允许我将该类定义为托管bean,如果我喜欢它的话。
6
到“渲染” XML的一个String作为@Stefan建议我将使用XAgent方法:
<?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.afterRenderResponse><![CDATA[#{javascript:try {
var writer = facesContext.getResponseWriter(), // get a writer object
response = facesContext.getExternalContext().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 ...
writer.write(
'<?xml version="1.0"?>\n'
+ '<root>\n'
+ '<entity>Example Content</entity>\n'
+ '</root>\n'
);
// close the stream
writer.endDocument();
} catch (e) {
print(e.toString());
}}]]>
</xp:this.afterRenderResponse>
<xp:this.resources>
<xp:script src="/XBAN.jss" clientSide="false"></xp:script>
</xp:this.resources>
</xp:view>
简单地把他的代码到一个新创建的XPage并对其进行测试。修改writer.write()
中的行以适应您的需求。
相关问题
- 1. XPages通过SSJS创建.txt文件
- 2. 的XPages创建SSJS
- 3. 使用XmlWriter创建xml文件
- 4. 使用PHP创建XML文件
- 5. 创建配置文件使用XML
- 6. 使用jsp创建xml文件
- 7. 创建使用从XML文件
- 8. 使用python创建/解析xml文件
- 9. 使用JSON或XML文件创建ViewControllers
- 10. 如何使用MSBuild创建XML文件?
- 11. 创建使用XML文件中的PHP
- 12. 如何使用Java创建xml文件?
- 13. 使用C#从xml创建bin文件
- 14. vs2008:创建和使用xml文件
- 15. 使用xml元素创建kml文件
- 16. 使用ElementTree或lxml创建xml文件
- 17. 使用ActionScript创建临时XML文件
- 18. 创建XML文件
- 19. 创建xml文件
- 20. 创建XML文件
- 21. 创建“动态”XML文件?
- 22. android xml文件创建
- 23. WP8创建XML文件c#
- 24. Python创建XML文件
- 25. 从IList创建XML文件
- 26. xml/rss文件创建者
- 27. 创建子XML文件?
- 28. 创建一个xml文件
- 29. 如何创建XML文件?
- 30. 动态创建XML文件
几乎不错:-) - 而不是字符串连接使用单独的write()语句,并使用一些XML类(sax,dom)而不是String。否则编码会咬你,当你不希望它 – stwissel
肯定,需要设置Domino以UTF-8编码HTTP输出,真正的解析肯定是更好 - 但如果你只需要提供一些简单的信息在一个XML结构,不使用额外的软件包会更容易。还有一件事:如果你使用字符串concat方法(及其所有的缺陷),那么使用Array.join()方法而不是String +方法肯定会更高效。 –