gpt4 book ai didi

xml - XSLT 默认替换标签值

转载 作者:行者123 更新时间:2023-12-03 16:11:32 26 4
gpt4 key购买 nike

我有这个 XML 文档:

<Document>
<a>
<b>
<c1>CCC111</c1>
<c2>CCCC222</c2>
</b>
<d>
<d1>DDD111</d1>
<d2>DDD222</d2>
<d3>DDD333</d3>
</d>
</a>
</Document>

我想用 XXXXXX 替换 Document/a/d/d1 的值:

<Document>
<a>
<b>
<c1>CCC111</c1>
<c2>CCCC222</c2>
</b>
<d>
<d1>XXXXXX</d1>
<d2>DDD222</d2>
<d3>DDD333</d3>
</d>
</a>
</Document>

我有这个 XSLT:

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>

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

<xsl:template match="Document/a/d/d1/text()">
XXXXXX
</xsl:template>

</xsl:stylesheet>

但我获得了相同的输入和输出:/

谢谢。

最佳答案

in my input file i have : <Document xmlns="tatatta" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="totoot">

这意味着您文档中的元素在 tatatta 中命名空间,并且由于 XPath 1.0 中的无前缀名称始终引用非命名空间元素,您的模板将不会匹配。您需要将命名空间映射到前缀并在模式中使用它,例如:

<xsl:template match="t:Document/t:a/t:d/t:d1/text()"
xmlns:t="tatatta">
<xsl:text>XXXXXX</xsl:text>
</xsl:template>

(或者您可以将 xmlns:t 放在您的 xsl:stylesheet 而不是模板上,如果您需要在其他地方使用相同的命名空间)。

关于xml - XSLT 默认替换标签值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19687782/

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