在Apache Camel XML DSL中修改XML Body,将作者ID追加到姓名后
无需编码的XML处理方案
方法1:用命令行XSLT工具(Saxon-HE)
这是最靠谱的无编码处理方式,只需要一段极简的模板代码(复制粘贴就行,算不上开发编码),配合免费工具就能搞定:
- 下载免费开源的Saxon-HE,解压后得到
saxon-he-xxx.jar文件 - 新建一个叫
merge-author.xsl的文件,把下面这段内容复制进去:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- 原样复制所有节点,只修改author节点 --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- 合并author下的name和id --> <xsl:template match="author"> <xsl:copy> <name> <xsl:value-of select="name"/>, <xsl:value-of select="id"/> </name> <!-- 要是不需要保留原id节点,把这行删掉就行 --> <xsl:apply-templates select="id"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
- 打开命令行,运行下面的命令(把路径换成你自己的文件路径):
java -jar saxon-he-xxx.jar -s:你的输入XML文件路径 -xsl:merge-author.xsl -o:输出XML文件路径
跑完之后,输出文件里的author姓名就会变成John, 4324234这种格式。
方法2:用可视化XML编辑器(Oxygen XML Editor)
嫌命令行麻烦的话,用可视化工具更省心:
- 打开Oxygen XML Editor,导入你的XML文件
- 新建XSLT文件,粘贴上面的模板内容
- 点击编辑器里的「Run Transformation」按钮,选好输入输出文件,一键完成合并
方法3:在线XSLT转换工具
不想下载软件的话,找个靠谱的在线XML/XSLT转换工具:
- 把你的XML内容和上面的XSLT模板分别粘贴到对应输入框
- 点击转换按钮,直接获取处理后的XML结果
- 提醒:如果XML里有敏感数据,别用在线工具,避免泄露
内容的提问来源于stack exchange,提问作者Esteban
相关产品推荐
相关产品推荐

