gpt4 book ai didi

java - 用于从 Java 程序传递的动态标记的 XSLT

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:22 25 4
gpt4 key购买 nike

我的要求是进行 XML A 到 XML B 的转换。我从 XML A 中读取的标签应该是可配置的,它是一种列表的迭代。如果 XML A 中存在任何新标记,则应通过在 Java 配置文件中添加条目并以编程方式进行处理,而这些条目又应反射(reflect)在 XSLT 中并转换为 XML B。

我正在使用 Java。是否可以通过传递参数来实现?根据我的要求,参数需要在循环或列表中传递。

我是 XSLT 的新手,非常感谢任何有关这方面的信息链接。

源 XML - 此处可以有更多内容,例如每年、每周等

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Report>
<Daily>
<input>1234</input>
</Daily>
<Monthly>
<input>8678</input>
</Monthly>
</Report>

目标 XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Report>
<Value>
<Attribute>
<name>Daily</name>
<values>1234</values>
</Attribute>
<Attribute>
<name>Monthly</name>
<values>8678</values>
</Attribute>
</Value>
</Report>

最佳答案

您可以对当前选定的节点使用 name()local-name() 函数。

查看如何selecting current element name in XSLT

这是代码草图:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/Report/">
<Value>
<xsl:for-each select="*">
<Attribute>
<name>
<xsl:value-of select="name()"/>
</name>
<values>
<xsl:value-of select="./input"/>
</values>
</Attribute>
</xsl:for-each>
</Value>
</xsl:template>
</xsl:stylesheet>

关于java - 用于从 Java 程序传递的动态标记的 XSLT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486726/

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