xml – 使用XSLT跳过节点
发布时间:2020-12-16 05:36:21 所属栏目:百科 来源:网络整理
导读:在处理xml文件时是否可以跳过节点?例如:说我有以下xml代码: mycase desc="" caseid id_1234 /caseid serid ref=""/ ...... ...... ...... /mycase 我想让它看起来像这样: mycase desc="" caseid="id_1234" ..... ...../mycase 目前我这样做: ?xml versi
在处理xml文件时是否可以跳过节点?例如:说我有以下xml代码:
<mycase desc=""> <caseid> id_1234 </caseid> <serid ref=""/> ...... ...... ...... </mycase> 我想让它看起来像这样: <mycase desc="" caseid="id_1234"> ..... ..... </mycase> 目前我这样做: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="2.0" exclude-result-prefixes="xs xdt err fn" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:err="http://www.w3.org/2005/xqt-errors"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="mycase"> <xsl:element name="mycase"> <xsl:attribute name="desc"/> <xsl:attribute name="caseid"> <xsl:value-of select="caseid"/> </xsl:attribute> <xsl:apply-templates/> </xsl:element> </xsl:template> ...... ...... 这确实创造了我想要的东西,但因为< xsl:apply-templates />它处理所有节点.虽然我希望它一起跳过处理caseid和serid.这也适用于其他节点,这些节点在新的XML结构中不可用.
您可以使用空模板来抑制输入文档中某些节点的输出:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="mycase"> <mycase caseid="{caseid}"> <xsl:apply-templates select="@*|node()"/> </mycase> </xsl:template> <xsl:template match="caseid|serid"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – string和StringBuilder有什么区别?
- React-native View组件transform样式
- Thoughts on Flash
- 【Oracle】将数据批量导入到Oracle数据库
- SQLite Insert 语句(http://www.w3cschool.cc/sqlite/sqlit
- ruby-on-rails – 在切换EC2实例Ruby on Rails时维护Cookie
- 详解利用 Express 托管静态文件的方法
- vue与vue-i18n结合实现后台数据的多语言切换方法
- C#Web服务 – 返回然后最后 – 首先发生什么
- c – 可以复制elision / RVO导致同一对象的复制/移动