xml - XSLT - 添加一个 XML 节点作为标题
问题描述
在我的流程中,我收到一个XML objects
类似此示例的列表:
<shop>..data..</shop>
<shop>..data..</shop>
<shop>..data..</shop>
<shop>..data..</shop>
我想像这样添加一个标头/节点:
<shops "xmlns": "http://www.demo.com","shops-id": "static-value">
<shop>..data..</shop>
<shop>..data..</shop>
<shop>..data..</shop>
<shop>..data..</shop>
</shops>
可以用 XSLT 添加它吗?
解决方案
很大程度上取决于上下文,但一种方法是创建一个匹配shop
任何列表中第一次出现的模板,如下所示:
<xsl:template match="shop[1]">
<shops>
<xsl:copy-of select=". | following-sibling::shop"/>
</shops>
</xsl:template>
(我没有添加属性,因为您的示例输出不是有效的 XML)
然后添加第二个模板以匹配剩余shop
元素并丢弃它们,如下所示:
<xsl:template match="shop"/>
可能有更有效的方法,具体取决于您正在尝试做什么,但这种方法将shops
在包含任何元素的任何元素中创建一个新shop
元素。
推荐阅读
- c - 双重自由运动没有达到预期的效果
- javascript - 将数组插入现有数据表javascript
- azure - 如何启用使用 Azure CNI 的 Azure AKS pod 之间的 SSL 通信?
- minio - 如何使用 Python 将目录上传到 Minio
- javascript - 加入 TreeRepository 而不是一维数组后返回嵌套对象
- mysql - SQL查询将许多关系填充为具有数组类型和条件的字段
- vue.js - 应该使用 Vuex 存储哪一部分数据?
- android-studio - Android CollapsingToolbarLayout 渲染问题
- android - react-native-geocoding 中的地理编码问题
- c# - 有没有办法在 C# 中获得独立于 AMD、NVIDIA 或 Intel GPU 的实时 GPU 性能信息?