【发布时间】:2022-01-01 14:09:13
【问题描述】:
我有这个 XML,我想添加一个带有硬编码值的新元素名称。我怎样才能实现它?
XML:
<m2:InvokeWebService xmlns:m2="http://www.w3.org/2001/XMLSchema-instance">
<m2:request>
<m2:action>ADD</m2:action>
<m2:commonDetails>
<m2:needSupport>Y</m2:needSupport>
</m2:commonDetails>
<m2:custDetails>
<m2:name>Tony,Hawk</m2:name>
<m2:accountNumber>23232423566</m2:accountNumber>
<m2:sensitiveCustomer>Y</m2:sensitiveCustomer>
</m2:custDetails>
</m2:request>
</m2:InvokeWebService>
期望的输出
<?xml version="1.0" encoding="UTF-8"?><m2:InvokeWebService xmlns:m2="http://www.w3.org/2001/XMLSchema-instance">
<m2:request>
<m2:action>ADD</m2:action>
<m2:commonDetails>
<m2:needSupport>Y</m2:needSupport>
</m2:commonDetails>
<m2:overrideScriptName>NewScript</m2:overrideScriptName>
<m2:custDetails>
<m2:name>Tony,Hawk</m2:name>
<m2:accountNumber>23232423566</m2:accountNumber>
<m2:sensitiveCustomer>Y</m2:sensitiveCustomer>
</m2:custDetails>
</m2:request>
</m2:InvokeWebService>
XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m2="http://www.w3.org/2001/XMLSchema-instance">
<!--<xsl:output method="xml" encoding="utf-8" indent="yes"/>-->
<!-- Identity template : copy all text nodes, elements and attributes -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<m2:overrideScriptName>CM-PrMtActMg</m2:overrideScriptName>
</xsl:stylesheet>
要在 custDetails 之前添加的新元素
<m2:overrideScriptName>NewScript</m2:overrideScriptName>
【问题讨论】:
-
在询问 XSLT 问题时,您需要提供 minimal reproducible example: (1) 输入 XML。 (2) 你的逻辑,以及试图实现它的 XSLT。 (3) 所需的输出,基于上面#1 中的示例 XML。 (4) XSLT 处理器及其对 XSLT 标准的遵从性:1.0、2.0 或 3.0。
-
添加了我尝试实现的 XSLT,抱歉我是 XSLT 新手