SAP ABAP实用技巧介绍系列之 使用XSLT替换xml中指定node的value
2023-09-14 09:02:51 时间
Created by Jerry Wang, last modified on Jun 30, 2014
用于测试的xml:
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
需求是将xml 文件中所有名为title的node的value替换成一个hard code value.
xslt program:
<xsl:stylesheet version="1.0"
xmlns:sap="http://www.sap.com/sapxsl"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="UTF-8" indent="no" method="xml" omit-xml-declaration="yes" version="1.0"/>
<xsl:template match="/">
<catalog>
<xsl:for-each select="catalog/cd">
<cd>
<xsl:for-each select="./*">
<xsl:choose>
<xsl:when test="name()='title'">
<xsl:copy>
<xsl:value-of select="'replaced!!!!'"/>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</cd>
</xsl:for-each>
</catalog>
</xsl:template>
</xsl:stylesheet>
测试结果:
如果原始的xml里存在不需要替换值的xml node:
只需要添加一对应的for each即可:
注意:若xml 源文件里节点名称包含namespace:
则这些namespace必须显式定义在xslt中,同时在使用node 名称匹配时也需要加上namespace前缀:
相关文章
- SAP UI5 sap.ui.layout.Grid 控件概述
- SAP UI5 ManagedObject 的 Event 讲解
- SAP LSWM导入物料基本视图操作步骤
- ChatGPT 帮我回答 SAP 技术交流群里关于 BAPI 使用的问题
- 用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版
- SAP UI5 XML 视图在实例化时就已经确定了 BindingSyntax 的实现版本了
- SAP ABAP 系统里 Checkpoint group 的创建
- SAP UI5 响应式表格 sap.m.Table 根据不同宽度的屏幕动态决定显示或隐藏 Column 的实现源代码讲解试读版
- SAP Fiori Launchpad url 参数 sap-app-origin-hint 的含义
- ORA-06805: TLI Driver: could not send datagram SAP packet for SPX ORACLE 报错 故障修复 远程处理
- SAP工单设置技术上已完成和取消技术上已完成详解编程语言
- SAP Smartform中table和template的区别详解编程语言
- 用SAP浏览网页详解编程语言
- SAP中的F4帮助详解编程语言
- SAP内向交货详解 Details on SAP inbound delivery编程语言
- SAP发布的WebService的登陆语言设置详解编程语言
- Node.js和MSSQL数据库的完美结合:使用node mssql模块(node mssql模块)
- 插入使用Node批量插入MSSQL数据库的实现(node mssql批量)
- 利用Node.js封装MSSQL的尝试(node mssql封装)
- Oracle与SAP金蝶谁更具竞争力(oracle sap金蝶)
- Oracle 与 SAP深度对比分析(oracle sap对比)