我想在服務器上使用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 +方法肯定會更高效。 –