如何使用 xpaths 和另一个 XML 中的相应元素转换 XML
How to transform a XML with xpaths and corresponding elements in another XML
我有如下要求。
我有一个如下所示的 xml,xslt 包含转换 xml 的 xpath。有没有现成的 xslt 做这个工作。
<employeelist>
<employee1>
<name>xxx</name>
<id>222</id>
<salary>1111111</salary>
</employee1>
<employee2>
<name>xxx1</name>
<id>22222</id>
<salary>1222111111</salary>
</employee2>
</employeelist>
<xpathlist>
<xpath1 elename="name">/employeelist/employee1/name</xpath>
<xpath1 elename="id">/employeelist/employee1/id</xpath>
<xpath1 elename="salary">/employeelist/employee1/salary</xpath>
<xpath1 elename="name">/employeelist/employee2/name</xpath>
<xpath1 elename="id">/employeelist/employee2/id</xpath>
<xpath1 elename="salary">/employeelist/employee2/salary</xpath>
</xpathlist>
我想使用上面的 xslt 和 xml
生成下面的 xml
<employeelist>
<employee1>
<name>xxx</name>
<id>222</id>
<salary>1111111</salary>
</employee1>
</employeelist>
我会将包含 XPath 的 XML 编译成元 XSLT,然后针对原始输入 XML 文件执行元 XSLT。
更新:您可以在 my answer to Annotating an xml instance from a list of xpath statements with xslt 中看到此技术的完整示例。如果您可以使用 XSLT 2.0 或 3.0,请查看其他答案中提供的技术。
我有如下要求。
我有一个如下所示的 xml,xslt 包含转换 xml 的 xpath。有没有现成的 xslt 做这个工作。
<employeelist>
<employee1>
<name>xxx</name>
<id>222</id>
<salary>1111111</salary>
</employee1>
<employee2>
<name>xxx1</name>
<id>22222</id>
<salary>1222111111</salary>
</employee2>
</employeelist>
<xpathlist>
<xpath1 elename="name">/employeelist/employee1/name</xpath>
<xpath1 elename="id">/employeelist/employee1/id</xpath>
<xpath1 elename="salary">/employeelist/employee1/salary</xpath>
<xpath1 elename="name">/employeelist/employee2/name</xpath>
<xpath1 elename="id">/employeelist/employee2/id</xpath>
<xpath1 elename="salary">/employeelist/employee2/salary</xpath>
</xpathlist>
我想使用上面的 xslt 和 xml
生成下面的 xml<employeelist>
<employee1>
<name>xxx</name>
<id>222</id>
<salary>1111111</salary>
</employee1>
</employeelist>
我会将包含 XPath 的 XML 编译成元 XSLT,然后针对原始输入 XML 文件执行元 XSLT。
更新:您可以在 my answer to Annotating an xml instance from a list of xpath statements with xslt 中看到此技术的完整示例。如果您可以使用 XSLT 2.0 或 3.0,请查看其他答案中提供的技术。