【发布时间】:2022-01-04 07:08:00
【问题描述】:
我目前正在处理一项任务,我需要遍历 XML 文件的两个不同部分(两个文件之前合并到这个文件中)并搜索 ID。
如果文件的两个位置的 ID、颜色和数量值都匹配,我需要选择第二个文件 (fileB) 中的所有字段。
如果没有,那么我需要从第一个文件 (fileA) 中选择字段。
这是一个 XML 示例:
<root>
<fileA>
<data>
<id>123</id>
<color>Green</color>
<quantaties>5</quantaties>
</data>
<data>
<id>456</id>
<color>Red</color>
<quantaties>7</quantaties>
</data>
<data>
<id>789</id>
<color>Blue</color>
<quantaties>9</quantaties>
</data>
</fileA>
<fileB>
<data>
<id>456</id>
<color>Red</color>
<quantaties>7</quantaties>
<date>15-07-2021</date>
<reason>Internal</reason>
</data>
</fileB>
</root>
在上面的示例中,两个文件中都只有 id 456,颜色为红色,数量为 7。在这种情况下,我想从 fileB 填充那个。所以我想要的输出是:
<root>
<newFile>
<data>
<id>123</id>
<color>Green</color>
<quantaties>5</quantaties>
</data>
<data>
<id>456</id>
<color>Red</color>
<quantaties>7</quantaties>
<date>15-07-2021</date>
<reason>Internal</reason>
</data>
<data>
<id>789</id>
<color>Blue</color>
<quantaties>9</quantaties>
</data>
</newFile>
</root>
请记住,多个字段必须匹配,而不仅仅是 ID。还有颜色和数量,以便选择 fileB 数据。谁能帮我解决这个问题?挣扎了一段时间。
【问题讨论】:
-
“多个字段必须匹配” 我们是否事先知道这些字段的名称(如您的示例中的 ID、颜色和数量)?
-
是的。它始终是 ID、颜色和数量字段。它们的名称总是相同的。
标签: xml xslt xslt-2.0 xslt-3.0