原创  asp中创建XML文件,自动缩进解决方案 收藏

在asp中使用dom创建新文档时,新文档不会进行自动缩进,虽从文档内容方面来讲新文档是格式良好或有效的,整个文档均在一行,用记事本或其它编辑工作打开新文件时,浏览文件很是不便,以下提供在asp中缩进XML的两个解决办法:
1.使用xsl进行缩进格式化:
   xsl文件:

  <?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "xml"  version="1.0" encoding="utf-8" omit-xml-declaration = "yes" indent = "yes" media-type="text/xml"/>

 <xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
   asp:
   <%
dim xmldoc,xsldoc,resultdoc
dim node,subnode
set xmldoc=server.CreateObject("MSXML2.DOMDocument")
xmldoc.async=false
xmldoc.loadXML("<?xml version='1.0' encoding='utf-8'?><root/>") '装载根节点

'----------------------创建节点*start----------------------
set node=xmldoc.createElement("user")
set subnode=xmldoc.createElement("name")
subnode.text="ssm1226"
node.appendChild subnode
set subnode=xmldoc.createElement("nickname")
subnode.text="雨中人"
node.appendChild subnode
set subnode=nothing
xmldoc.documentElement.appendChild node
set node=nothing
'----------------------创建节点*end----------------------
set xsldoc=server.CreateObject("MSXML2.DOMDocument")
xsldoc.async=false
xsldoc.load server.MapPath("transform.xsl")'装载转换xsl文件

set resultdoc=server.CreateObject("MSXML2.DOMDocument")
resultdoc.async=false
xmldoc.transformNodeToObject xsldoc,resultdoc '转换
set node=resultdoc.createProcessingInstruction("xml","version='1.0' encoding='utf-8'") '创加<?xml version='1.0' encoding='utf-8'?>声明
resultdoc.insertBefore node,resultdoc.firstChild'添加声明
set node=nothing
resultdoc.save server.MapPath("result.xml") '保存XML文件
%>

2.DOM中添加换行符

<%
dim xmldoc,node1,node2
set xmldoc=server.CreateObject("msxml2.domdocument")
xmldoc.async=false
xmlDoc.validateOnParse = false
if not xmldoc.loadXML("<root></root>") then
 response.Write xmldoc.parseError.reason
 response.End
end if

response.Write xmldoc.xml
response.End
set node1=xmldoc.createTextNode(vbcrlf)

set node2=xmldoc.createElement("name")
node2.text="ssm1226"

xmldoc.documentElement.appendChild node1.cloneNode(true)
xmldoc.documentElement.appendChild node2
xmldoc.documentElement.appendChild node1.cloneNode(true)

xmldoc.save "c:\test.xml"

%>

发表于 @ 2004年09月28日 11:06:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:根据内容自动高速页面中帧的高度 | 新一篇:xslt中动态排序一法

  • 发表评论
  • 评论内容:
  •  
Copyright © ssm1226
Powered by CSDN Blog