亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

利用XSLT來換XML的根

2024-09-05 20:54:21
字體:
來源:轉載
供稿:網友

寫程序需要換XML的根,感覺很不便,于是寫了一個函數,大致思路及實現如下:

首先覺得利用XSLT還能過濾一些東西,然后再發送回客戶端,所以決定采用XSLT

然后就是嘗試寫一個換根的XSL,如下

以下為引用的內容:

<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="gb2312" omit-xml-declaration="yes" indent="yes" />

<xsl:template match="/">
<NEWNODENAME>
<xsl:apply-templates select="@* | node()" />
</NEWNODENAME>
</xsl:template>

<xsl:template match="@* | node()">
<xsl:choose>
<xsl:when test=".!=ancestor::node()"><xsl:copy><xsl:apply-templates select="@* | node()"/></xsl:copy></xsl:when>
<xsl:otherwise><xsl:apply-templates select="@* | node()"/></xsl:otherwise>
</xsl:choose>
</xsl:template>

</xsl:stylesheet>

大致意思是,解析一個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 = "<?xml version=""1.0"" encoding=""gb2312"" ?>" & vbCrLf
sXslt = sXslt & "<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">" & vbCrLf
sXslt = sXslt & "<xsl:output method=""xml"" version=""1.0"" encoding=""gb2312"" omit-xml-declaration=""yes"" indent=""yes"" />" & vbCrLf
sXslt = sXslt & vbCrLf
sXslt = sXslt & "<xsl:template match=""/"">" & vbCrLf
sXslt = sXslt & "<" & name & ">"" & vbCrLf"
sXslt = sXslt & " <xsl:apply-templates select=""@* | node()""/>" & vbCrLf
sXslt = sXslt & "</" & name & ">" & vbCrLf
sXslt = sXslt & "</xsl:template>" & vbCrLf
sXslt = sXslt & vbCrLf
sXslt = sXslt & "<xsl:template match=""@* | node()"">" & vbCrLf
sXslt = sXslt & " <xsl:choose>" & vbCrLf
sXslt = sXslt & " <xsl:when test="".!=ancestor::node()""><xsl:copy><xsl:apply-templates select=""@* | node()""/></xsl:copy></xsl:when>" & vbCrLf
sXslt = sXslt & " <xsl:otherwise><xsl:apply-templates select=""@* | node()""/></xsl:otherwise>" & vbCrLf
sXslt = sXslt & " </xsl:choose>"" & vbCrLf"
sXslt = sXslt & "</xsl:template>"" & vbCrLf"
sXslt = sXslt & vbCrLf
sXslt = sXslt & "</xsl:stylesheet>" & 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文件,這就要看你如何設計了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
茄子视频成人在线| 日韩视频在线观看免费| 久久久亚洲成人| 欧美日韩精品国产| 26uuu国产精品视频| 国产精品啪视频| 欧美激情综合亚洲一二区| 国产成人综合av| 亚洲视频精品在线| 欧美中文在线视频| 日韩精品中文字幕在线观看| 国产一区二区三区丝袜| 日本欧美一二三区| 国产综合色香蕉精品| 亚洲三级免费看| 日韩毛片在线看| 91亚洲国产成人久久精品网站| 欧美日韩第一视频| 久久精品成人一区二区三区| 在线a欧美视频| 国产精品久久久久久久久久久久| 亚洲国产精品推荐| 国产精品狼人色视频一区| 91视频九色网站| 97久久超碰福利国产精品…| 欧美日韩国产一区二区三区| 91黄色8090| 久久99热精品| 亚洲欧美日韩精品久久奇米色影视| 欧美极品美女视频网站在线观看免费| 日本精品视频网站| 日本三级韩国三级久久| 色噜噜国产精品视频一区二区| 国产成人精品在线| 国产精品久久久久久搜索| 91亚洲人电影| 庆余年2免费日韩剧观看大牛| 视频在线一区二区| 亚洲www在线观看| 日韩欧美亚洲范冰冰与中字| 91在线观看免费| 国产精品成人播放| 成人美女免费网站视频| 在线观看欧美日韩| 亚洲欧美另类在线观看| 国产成人福利网站| 成人国产精品久久久| 中文字幕日韩欧美精品在线观看| 国产精自产拍久久久久久| 色妞欧美日韩在线| 亚洲女人天堂av| 亚洲18私人小影院| 日本精品在线视频| 欧美成人免费在线观看| 亚洲一区二区三区毛片| 成人国产精品av| 97精品一区二区视频在线观看| 亚洲第一精品福利| 久久久国产精品视频| 成人午夜小视频| 日韩黄色高清视频| 久久成年人视频| 亚洲专区在线视频| 精品久久久久久久久久久久久久| 国产精品白嫩美女在线观看| 亚洲精品影视在线观看| 亚洲欧美另类中文字幕| 欧美日韩国产中文精品字幕自在自线| 91手机视频在线观看| 亚洲电影免费在线观看| 亚洲男人第一网站| 成人av在线网址| 91精品一区二区| 91精品视频免费| 国产精品视频在线播放| 日本精品视频网站| 91久久精品国产91性色| 成人黄色免费看| 亚洲精品国产精品自产a区红杏吧| 亚洲精品色婷婷福利天堂| 久久免费视频在线观看| 国产欧美精品一区二区| 欧美日韩日本国产| 欧美午夜宅男影院在线观看| 精品久久久久久中文字幕大豆网| 亚洲一级黄色片| 欧美激情视频在线免费观看 欧美视频免费一| 26uuu国产精品视频| 久久视频国产精品免费视频在线| 黄色一区二区在线观看| 日韩精品视频中文在线观看| 亚洲女人被黑人巨大进入al| 欧美日韩国产精品一区二区不卡中文| 韩剧1988免费观看全集| 免费99精品国产自在在线| 68精品国产免费久久久久久婷婷| 久久精品这里热有精品| 国产精品自拍视频| 欧美一区在线直播| 庆余年2免费日韩剧观看大牛| 日韩欧美高清在线视频| 午夜精品久久久久久久99热浪潮| 亚洲老头老太hd| 欧美日韩中文字幕日韩欧美| 精品中文字幕视频| 国产精品一香蕉国产线看观看| 91国产美女视频| 色综合久久久久久中文网| 亚洲天堂av高清| 日韩欧美精品免费在线| 亚洲毛茸茸少妇高潮呻吟| 久久久成人精品| 欧美极度另类性三渗透| 亚洲v日韩v综合v精品v| 亚洲一区二区三区香蕉| 久久99精品视频一区97| 57pao成人国产永久免费| 日本精品视频在线观看| 亚洲视频在线看| 日韩成人中文字幕在线观看| 国产视频在线观看一区二区| 欧美主播福利视频| 中文字幕精品www乱入免费视频| 亚洲午夜未删减在线观看| 亚洲精品一区中文字幕乱码| 亚洲香蕉av在线一区二区三区| 深夜福利91大全| 精品亚洲夜色av98在线观看| 亚洲电影天堂av| 成人春色激情网| 一区二区三区国产在线观看| 91在线无精精品一区二区| 国产精品人成电影| 在线看片第一页欧美| 精品少妇一区二区30p| 国产精品对白刺激| 国产精品久久婷婷六月丁香| 日韩欧美中文在线| 97碰碰碰免费色视频| 亚洲欧美国产精品久久久久久久| 精品无人区乱码1区2区3区在线| 国产精品欧美风情| 久久精品这里热有精品| 久久精品国产清自在天天线| 一本大道香蕉久在线播放29| 亚洲一区二区三区在线视频| 国产精品中文在线| 国产精品永久免费视频| 欧美影院成年免费版| 久久精品国产亚洲7777| 日韩欧美亚洲国产一区| 欧美精品性视频| 日韩电影中文 亚洲精品乱码| 日韩视频永久免费观看| 亚洲性69xxxbbb| 国产精品午夜国产小视频| 中文字幕免费精品一区高清| 中文字幕日韩av综合精品| 国产成人精品a视频一区www| 视频在线一区二区| 亚洲精品在线视频| 国产精品日韩欧美| 亚洲va久久久噜噜噜| 欧美黑人又粗大|