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