gpt4 book ai didi

java - 增加标签值或添加标签 xSTL

转载 作者:行者123 更新时间:2023-12-02 07:25:18 25 4
gpt4 key购买 nike

我有 xml 输入消息:

<Message>
<Header>
<Timestamp>2010-10-04T14:43:12.361-04:00</Timestamp>
</Header>
</Message>

我需要通过 xslt 传递它以获得:

<Message>
<Header>
<Timestamp>2010-10-04T14:43:12.361-04:00</Timestamp>
<Retry>1</Retry> <!-- added -->
</Header>
</Message>

如果 xml 中不存在重试并将重试值增加 1(如果存在)。

<Message>
<Header>
<Timestamp>2010-10-04T14:43:12.361-04:00</Timestamp>
<Retry>2</Retry> <!-- incremented -->
</Header>
</Message>

你能帮忙吗?

如果不存在,我有代码添加值,如果存在标签,如何丰富它以增加值:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:param name="ename">Retry</xsl:param>
<xsl:param name="evalue">1</xsl:param>
<xsl:output method="xml" encoding="utf-8"/>

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

<xsl:template match="Header">
<xsl:copy>
<xsl:apply-templates/>
<xsl:if test="not(Retry)">
<xsl:element name="{$ename}"><xsl:value-of select="$evalue"/></xsl:element>
</xsl:if>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>

最佳答案

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:param name="ename">Retry</xsl:param>
<xsl:param name="evalue">1</xsl:param>
<xsl:output method="xml" encoding="utf-8"/>

<xsl:variable name="number" select="//Retry" />

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

<xsl:template match="//Retry" />

<xsl:template match="Header">
<xsl:copy>
<xsl:apply-templates/>
<xsl:if test="not(Retry)">
<xsl:element name="{$ename}"><xsl:value-of select="$evalue"/></xsl:element>
</xsl:if>
<xsl:if test="Retry">
<xsl:element name="{$ename}"><xsl:value-of select="$number + 1 "/> </xsl:element>
</xsl:if>
</xsl:copy>

这就是我所做的,看起来很有效。

关于java - 增加标签值或添加标签 xSTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com