gpt4 book ai didi

java - 使用 java 或 xslt 根据 xml 的内容拆分 xml

转载 作者:行者123 更新时间:2023-11-30 09:11:20 24 4
gpt4 key购买 nike

我有一个要求,考虑下面的xml数据 输入1.xml

 <Envelope>
<Notification>
<Data>
<Input>ABCDEFGHIJKLMN</Input>
<Output>RESPONSEDATA</Output>
</Data>
<Data>
<Input>OPQRSTUVWXYZ</Input>
<Output>NEXTDATA</Output>
</Data>
<Data>
<Input>ALPHABETS</Input>
<Output>SOMEDATA</Output>
</Data>
</Notification>
</Envelope>

现在我想要 3 个输出 xml,其响应如下所示,文件名具有 ABCDEFGHIJKLMN 的前 6 个字符作为输出文件名,如下所示

(FILE1)->ABCDEF.XML
<Output>RESPONSEDATA</Output>
(FILE2)->OPQRST.XML

<Output>NEXTDATA</Output>
(FILE3)->ALPHAB.XML
<Output>SOMEDATA</Output>

最佳答案

您使用哪种 XSLT 1.0 处理器? Xalan Java 支持

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
extension-element-prefixes="redirect"
exclude-result-prefixes="redirect">


<xsl:template match="/Envelope/Notification/Data[not(Input/*)]">
<redirect:write select="concat(substring(Input, 1, 6), '.xml')">
<xsl:copy-of select="Output"/>
</redirect:write>
</xsl:template>

<xsl:template match="/Envelope/Notification/Data[Input/*]">
<redirect:write select="concat(local-name(Input/*), '.xml')">
<xsl:copy-of select="Output"/>
</redirect:write>
</xsl:template>

</xsl:stylesheet>

关于java - 使用 java 或 xslt 根据 xml 的内容拆分 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149000/

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