js格式化xml字串
阿新 • • 發佈:2018-11-01
無論在輸入xml字串或顯示xml字串,都要判斷xml的正確性。
以下是js格式化後臺xml字串。
//格式化xml function formatXml(str){ //去除輸入框中xmll兩端的空格。 str = str.replace(/^\s+|\s+$/g,""); var source = new ActiveXObject("Msxml2.DOMDocument"); //裝載資料 source.async = false; source.loadXML(str); // 裝載樣式單 var stylesheet = new ActiveXObject("Msxml2.DOMDocument"); stylesheet.async = false; stylesheet.resolveExternals = false; stylesheet.load(path+"/XlsTmpl/temp/format.xsl"); // 建立結果物件 var result = new ActiveXObject("Msxml2.DOMDocument"); result.async = false; // 把解析結果放到結果物件中方法1 source.transformNodeToObject(stylesheet, result); //alert(result.xml); if(result.xml==''||result.xml==null){ alert('xml報文格式錯誤,請檢查'); return false; } var finalStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +result.xml; return finalStr; }
注意:其需要一個檔案xsl,使用時直接copy即可。
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" encoding="utf-8"/> <xsl:template match="/ | @* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
這樣話,在輸入時,若返回false,則可以驗證。在顯示時,可以格式化。