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

6 篇文章 0 订阅

在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"

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值