寫程序需要換XML的根,感覺很不便,于是寫了一個函數,大致思路及實現如下:
首先覺得利用XSLT還能過濾一些東西,然后再發送回客戶端,所以決定采用XSLT
然后就是嘗試寫一個換根的XSL,如下
以下為引用的內容: <?xml version="1.0" encoding="gb2312" ?> <xsl:template match="/"> <xsl:template match="@* | node()"> </xsl:stylesheet> |
大致意思是,解析一個XML中的所有結點及屬性,如果非根就直接拷貝,否則就查看是否存在子結點及屬性。具體資料請參照MSXML的SDK文檔。
然后寫一個函數,使得NEWNODENAME可以指定:
這段代碼為VB.Net中的實現,ASP中實現時需要注意對象附值需要用Set,還有返回值的問題
以下為引用的內容: Public Function ChangeXmlRootNodeName(ByRef oXml As MSXML2.DOMDocument, ByVal name As String) As String Dim oXsl As New MSXML2.DOMDocument Dim sXml As String sXml = oXml.transformNode(oXsl) sXml = AddXmlHeader(sXml) sXsl = Nothing Return sXml |
還有,當然你也可以實現生成那個XSL的XSL文件,這就要看你如何設計了。
|
新聞熱點
疑難解答