You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSLT转换时如何为rss元素添加带前缀的xmlns:g命名空间

原因

XSLT处理器默认会自动移除输出内容中未被实际使用的命名空间声明,你当前的转换结果里没有任何使用g前缀的元素或属性,因此xmlns:g声明被优化掉了。

解决方法

方案1(兼容XSLT 1.0,推荐)

直接手动给rss节点添加命名空间属性即可,修改后的完整代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="items">
  <rss version="2.0">
    <!-- 手动添加g命名空间声明 -->
    <xsl:attribute name="xmlns:g">http://base.google.com/ns/1.0</xsl:attribute>
    <channel>
      <title>Data Feed</title>
      <link>http://www.example.com</link>
      <description>Description of data feed</description>
      <xsl:for-each select="item">
        <item>
          <sku><xsl:value-of select="sku"/></sku>
          <name><xsl:value-of select="name"/></name>
        </item>
      </xsl:for-each>
    </channel>
  </rss>
</xsl:template>
</xsl:stylesheet>

方案2(XSLT 2.0及以上可用)

使用专门的<xsl:namespace>指令强制输出命名空间:

<xsl:namespace name="g" select="'http://base.google.com/ns/1.0'"/>

把这行代码放到rss节点内部即可。


内容的提问来源于stack exchange,提问作者jburkhardt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:39:03