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

如何用XSLT将XML转换为可直接用作配置文件的CSV?

用XSLT实现XML到目标CSV格式的转换

完全可以通过XSLT实现这个需求,而且能直接输出未转义的<和>符号,不需要后续在Excel里做查找替换。核心是利用XSLT的禁用输出转义特性,同时指定输出为纯文本格式(避免XML的默认转义规则)。

实现思路

  1. 设定XSLT输出为text类型,而非默认的XML,这样不会触发XML特殊字符的自动转义。
  2. 对需要输出的<和>标签,使用<xsl:text disable-output-escaping="yes">强制输出原始字符,不转义成&lt;/&gt;。
  3. 严格按照你期望的CSV格式拼接内容,注意CSV中双引号的转义规则:要输出一个双引号,需要写两个连续的双引号。

完整XSLT代码

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 指定输出为纯文本,编码UTF-8 -->
    <xsl:output method="text" encoding="UTF-8"/>

    <xsl:template match="/">
        <!-- 遍历所有project节点 -->
        <xsl:for-each select="/*/project">
            <!-- 拼接CSV行:按照目标格式插入name和value值 -->
            <xsl:text>"&lt;add project=&quot;&quot;"</xsl:text>
            <xsl:value-of select="name"/>
            <xsl:text>"&quot;&quot; value=&quot;&quot;"</xsl:text>
            <xsl:value-of select="value"/>
            <xsl:text>"&quot;&quot; /&gt;"&#10;</xsl:text>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

代码说明

  • <xsl:output method="text">:告诉XSLT处理器输出纯文本,不套用XML结构,避免自动转义特殊字符。
  • disable-output-escaping="yes":在<xsl:text>中启用这个属性后,里面的<和>会被直接输出,不会被转义成实体引用。
  • &#10;:代表换行符,确保每个project对应一行CSV内容,方便Excel识别。
  • CSV中的双引号处理:目标格式里的""需要用&quot;&quot;表示(因为在XSLT的XML语境中,双引号要用实体引用,两个实体引用就对应CSV里的两个双引号)。

使用方式

用任意XSLT处理器(比如Saxon、Xalan,或者在线XSLT转换工具)将你的原始XML和上述XSLT文件结合处理,得到的结果就是可以直接粘贴到Excel的CSV内容,完全符合你要的格式,不需要额外替换操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:55:14