【发布时间】:2013-05-01 18:05:23
【问题描述】:
我想在 XSLT 中读取一个 XML 文件并检查它的节点。如果它们与我正在应用转换的 XML 节点的值匹配,则获取 XML 节点的值并使用它来构造新的 XML 结构。
这里有一个例子来说明我的问题。我想很多人可以参考这个问题来实现类似的功能。
Referenced.xml
<xml>
<root>
<Id id = "1">
<fields>
<field>
<name> Name1 </name>
<value> Val1 </value>
</field>
<field>
<name> Name2 </name>
<value> Val2 </value>
</field>
</fields>
</Id>
<Id id = "2">
...
</Id>
</root>
</xml>
Xml.xml
<XML>
<Fields>
<Id id = "1">
<F1> Value1 </F1>
<F2> Value2 </F2>
<F1> Value3 </F1>
<F4> Value4 </F4>
</Id>
</Fields>
</XML>
现在,我想创建一个转换,它将遍历 XML 文件 (Referenced.xml) 并检查两个 xml 匹配项中的 Id 位置,然后在该 id 中,Name1 = F1 以及无论它在哪里,获取 ' value' 并创建一个 XML 结构,如
<outputXml>
<Field id="Val1">
<val> Value1 </val>
</Field>
<Field id="Val2">
<val> Value2 </val>
</Field> ... and so on
</outputXml>
我知道我必须使用document(),但我不确定你如何遍历xsl 中的Referenced.xml 并使用if,否则以实现所需的功能?
【问题讨论】:
-
您的 XML 格式错误,
无效。请提供有效的 XML。 -
已添加。忘记加引号了。再次检查
-
对不起,它仍然是错误的。您需要指定一个属性名称,例如
-
对不起,我再次编辑是有效的。
-
有人刚刚编辑了我的更改。你如何在这里防止这种情况?虽然我又恢复了有效。