利用XSLT來換XML的根_Xml教程
推薦:讀取XML為行記錄以下為引用的內(nèi)容: 1 declare @x xml 2 set @x='<book genre="security" publicationdate="2002" ISBN="0-7356-1588-2&
寫程序需要換XML的根,感覺很不便,于是寫了一個(gè)函數(shù),大致思路及實(shí)現(xiàn)如下:
首先覺得利用XSLT還能過濾一些東西,然后再發(fā)送回客戶端,所以決定采用XSLT
然后就是嘗試寫一個(gè)換根的XSL,如下
| 以下為引用的內(nèi)容: <?xml version="1.0" encoding="gb2312" ?> <xsl:template match="/"> <xsl:template match="@* | node()"> </xsl:stylesheet> |
大致意思是,解析一個(gè)XML中的所有結(jié)點(diǎn)及屬性,如果非根就直接拷貝,否則就查看是否存在子結(jié)點(diǎn)及屬性。具體資料請參照MSXML的SDK文檔。
然后寫一個(gè)函數(shù),使得NEWNODENAME可以指定:
這段代碼為VB.Net中的實(shí)現(xiàn),ASP中實(shí)現(xiàn)時(shí)需要注意對象附值需要用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)然你也可以實(shí)現(xiàn)生成那個(gè)XSL的XSL文件,這就要看你如何設(shè)計(jì)了。
分享:XML 2007年度回顧對 XML 來說,2007 年又是發(fā)展較為平緩的一年。但是在這一年中,一些重要的規(guī)范都升級到了 1.0 版,XML 在信息發(fā)布(Web 和傳統(tǒng)形式)方面得到持續(xù)發(fā)展。更重要的是,REST 與 Web 服務(wù)的碰撞引起
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說明:
Xml教程-利用XSLT來換XML的根
。