使用XSLT

时间:2018-04-19 15:27:36

标签: xslt replace match xslt-1.0

我正在尝试使用XSLT编写匹配和替换函数。我有两个变量,其中包含不同的名称值对。这两个变量中的名称很少匹配。我需要替换匹配的名称值对的值。例如:

<original_val>xxx=123,iii=kos,123=hfj,i920=owp02</original_val>

<replace_val>xxx=abc,i920=23ew</replace_val>

从上面你可以看到

replace_val

元素确实有 xxx i920 名称,其名称与 xxx i920 相匹配

original_val

元素。

我的任务是使用XSL将 original_val 元素中的xxx和i920的值替换为 replace_val 元素的值。 xxx和i920的值完全是随机的。我使用的是XSLT版本1.任何提示都会非常有用。

1 个答案:

答案 0 :(得分:1)

我的建议是使用模板拆分两个字符串并创建两个包含以下内容的新变量:

<originalSplit>
  <element>
    <name>xxx</name>
    <value>123</value>
  </element>
  <element>
    <name>iii</name>
    <value>kos</value>
  </element>
  <element>
    <name>123</name>
    <value>hfj</value>
  </element>
  <element>
    <name>i920</name>
    <value>owp02</value>
  </element>
</originalSplit>

<replaceSplit>
  <element>
    <name>xxx</name>
    <value>abc</value>
  </element>
    <name>i920</name>
    <value>23ew</value>
  </element>
</replaceSplit>

然后,您可以循环遍历originalSplit变量的元素并输出每个变量的名称。然后检查replaceSplit变量中是否存在名称匹配。如果是,则输出替换值。如果不是,则输出原始值。关于如何在XSLT 1.0中拆分分隔字符串,本网站有很多问题。我建议使用其中一个答案。