在单个 XSLT 文件中是否有一种方法可以首先打开一个 XML 文件并提取一个带有子元素的元素,然后将该元素填充到第二个 XML 文件中?
如果不能在一个 XSLT 中完成,那么我选择的语言将是 vb 脚本。
我在这里看到了很多不同的例子,但我只是很困惑,不理解其中的大多数。
这是我用于从 XML1 中提取节点的 XSL:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
omit-xml-declaration="yes"
indent="yes"
encoding="ISO-8859-1"/>
<xsl:template match="/">
<xsl:copy-of select="root/Collection/Item/." />
</xsl:template>
</xsl:stylesheet>
我想获取生成的项目并将其附加到 XML2 中的相同 XPATH、根/集合中。
我有一个来自这个答案的 vb 脚本How to save XML to a file (Thank you Andrew Cooper),它将 XML 返回到 memvar。
XML1:
<root>
<collection1>
<item attr1, attr2...> ---this is what I am getting
<more>
</more>
</item>
<collection1>
<collection2>
<item attr1, attr2...>
<more>
</more>
</item>
<collection2>
...
<collection_n>
<item attr1, attr2...>
<more>
</more>
</item>
<collection_n>
</root>
XML2:
<root>
<collection1>
<item attr1, attr2...>
<more>
</more>
</item>
---- i want to insert node from XML1 here, only in collection1
<collection1>
<collection2>
<item attr1, attr2...>
<more>
</more>
</item>
<collection2>
...
<collection_n>
<item attr1, attr2...>
<more>
</more>
</item>
<collection_n>
</root>
所以新的 XML2:
<root>
<collection1>
<item attr1, attr2...>
<more>
</more>
</item>
<item attr1, attr2...>
<more>
</more>
</item>
<collection1>
<collection2>
<item attr1, attr2...>
<more>
</more>
</item>
<collection2>
...
<collection_n>
<item attr1, attr2...>
<more>
</more>
</item>
<collection_n>
</root>