All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
利用XSLT来换XML的根_[XML教程]

Writer: 归海一刀 Article type: Programming skills(编程技巧) Time: 2014/3/20 5:15:39 Browse times: 318 Comment times: 0

利用XSLT来换XML的根_[XML教程]


Head photo

Go homepage
Upload pictures
Write articles

利用XSLT来换XML的根_[XML教程] 写程序需要换XML的根,感觉很不便,于是写了一个函数,大致思路及实现如下:

  首先觉得利用XSLT还能过滤一些东西,然后再发送回客户端,所以决定采用XSLT
  然后就是尝试写一个换根的XSL,如下












大致意思是,解析一个XML中的所有结点及属性,如果非根就直接拷贝,否则就查看是否存在子结点及属性。具体资料请参照MSXML的SDK文档。

  然后写一个函数,使得NEWNODENAME可以指定:

这段代码为VB.Net中的实现,ASP中实现时需要注意对象附值需要用Set,还有返回值的问题

Public Function ChangeXmlRootNodeName(ByRef oXml As MSXML2.DOMDocument, ByVal name As String) As String
If oXml Is Nothing Then
Return ""
End If
Dim sXslt As String
sXslt = "" & vbCrLf
sXslt = sXslt & "" & vbCrLf
sXslt = sXslt & "" & vbCrLf
sXslt = sXslt & vbCrLf
sXslt = sXslt & "" & vbCrLf
sXslt = sXslt & "<" & name & ">"" & vbCrLf"
sXslt = sXslt & " " & vbCrLf
sXslt = sXslt & "" & vbCrLf
sXslt = sXslt & "
" & vbCrLf
sXslt = sXslt & vbCrLf
sXslt = sXslt & "" & vbCrLf
sXslt = sXslt & " " & vbCrLf
sXslt = sXslt & " " & vbCrLf
sXslt = sXslt & " " & vbCrLf
sXslt = sXslt & "
"" & vbCrLf"
sXslt = sXslt & "
"" & vbCrLf"
sXslt = sXslt & vbCrLf
sXslt = sXslt & "
" & vbCrLf

Dim oXsl As New MSXML2.DOMDocument
oXsl.async = False
oXsl.resolveExternals = False
oXsl.loadXML(sXslt)

Dim sXml As String

sXml = oXml.transformNode(oXsl)

sXml = AddXmlHeader(sXml)

 sXsl = Nothing

Return sXml
End Function


  还有,当然你也可以实现生成那个XSL的XSL文件,这就要看你如何设计了。





There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.