【发布时间】:2012-08-31 13:34:21
【问题描述】:
当有匹配的 'id' 属性时,我想使用 XSLT 合并 2 个 XML 文件。
myFile1.xml(这是第一个输入文件)
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<node>
<type id="a">
<name>joe</name>
<name>kill</name>
</type>
</node>
<node>
<type id="b">
<name>sam</name>
</type>
</node>
</test>
myFile2.xml(这是第二个输入文件)
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<node>
<type id="a">
<name>jill</name>
<name>kill</name>
</type>
</node>
</test>
mergeOutput.xml(这是 id 匹配并合并 2 个文件的预期输出)
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<node>
<type id="a">
<name>joe</name>
<name>jill</name>
<name>Kill</name>
</type>
</node>
<node>
<type id="b">
<name>sam</name>
</type>
</node>
</test>
任何 XSLT 代码或代码链接都会有所帮助。我没有 XSLT 知识,也没有使用此合并来使事情正常进行。
【问题讨论】:
-
同一个文件中可以有多个
<type>元素与同一个id吗? -
(回复 Ian Roberts)- 文件中有多个
元素,但每个元素都有唯一的 id 属性。 -
可以在几秒钟内使用 LINQ2XML 做到这一点......但不能在 xslt 中......如果你是 c# 开发人员,你可以为此使用 LINQ2XML
-
在一个输入文件中,id="a" 的元素有两个孩子;在另一个文件中,它有 2 个不同的孩子;但结果是这四个中的三个。我不明白其中的逻辑。
-
@MichaelKay,OP 认为“Kill”和“kill”是两个相等的字符串——可能是一个错字。