gpt4 book ai didi

xml - XSLT 将 2 个 XML 文件作为输入并生成输出 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:02:24 26 4
gpt4 key购买 nike

我正在尝试根据决策 xml 文件 (Input2) 中可用的数据从主 xml 文件 (Input1) 生成输出 XML 文件。

主文件

<Level1>

<Level2>
<LinkedTo>DATA1</LinkedTo> <!DATA1 in the decision file>
<Attribute1>1</Attribute1>
<Attribute2>2</Attribute2>
</Level2>

<Level2>
<LinkedTo>DATA2</LinkedTo>
<Attribute1>3</Attribute1>
<Attribute2>4</Attribute2>
</Level2>

</Level1>

决策文件:

<TopLevel>
<DATA1>
<Available>Y</Available>
</DATA1>

<DATA2>
<Available>N</Available>
</DATA2>

</TopLevel>

XSLT 在处理时必须输出结果文件(基于决策文件中的是或否)。

<Level1>
<Level2>
<Attribute1>1</Attribute1>
<Attribute2>2</Attribute2>
</Level2>
</Level1>

我必须承认我以前从未做过 XML 的东西,但这是可行性研究所需要的。 XSLT 中应该包含什么?我可以使用你的答案并扩展这个概念。

或者如果有替代方案(python、C#、C、C++ 等),也欢迎使用。我可以使用 C/C++ 或任何面向过程的语言进行管理。

最佳答案

使用document功能。将 URI 传递给决策 XML,例如:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="Level1">
<xsl:copy>
<xsl:apply-templates select="Level2"/>
</xsl:copy>
</xsl:template>

<xsl:template match="Level2">
<xsl:if test="document('Decision.xml')/TopLevel/*[
name() = current()/LinkedTo and Available = 'Y']">
<xsl:copy>
<xsl:apply-templates select="*[not(self::LinkedTo)]"/>
</xsl:copy>
</xsl:if>
</xsl:template>

<xsl:template match="*">
<xsl:copy-of select="."/>
</xsl:template>

</xsl:stylesheet>

关于xml - XSLT 将 2 个 XML 文件作为输入并生成输出 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959683/

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