需要帮助来创建一个XSL文件,该文件将输入XML文件input.XML转换为output.XML格式
我需要:需要帮助来创建一个XSL文件,该文件将输入XML文件input.XML转换为output.XML格式,xml,xslt,Xml,Xslt,我需要: 将input.xml(以下文件)转换为output.xml 创建另一个XLS,该XLS将显示每个金额:KG、PAL和M3的 总价值 将标签替换为同一XSL中的标签 第2点 创建另一个XSL,它只是为每个XSL添加一个额外的标记 并在此标签内显示装载时间(hh:MM) 但首先我需要转换这个文件(input.xml): 我尝试了这个方法,但它不完整,我不知道如何将值(如输入文件中的:PAL)转换为atributes(如输出文件中的…)。我环顾四周,尝试了一些东西,但它不起作用。有人能帮我吗
input.xml
(以下文件)转换为output.xml
KG
、PAL
和M3
的
总价值李>
替换为同一XSL中的标签
第2点李>
并在此标签内显示装载时间(hh:MM
)input.xml
):
我尝试了这个方法,但它不完整,我不知道如何将值(如输入文件中的:PAL
)转换为atributes(如输出文件中的…
)。我环顾四周,尝试了一些东西,但它不起作用。有人能帮我吗。下面是我的XSLT。提前感谢。
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl: template match = "/">
<output>
<xsl: for-each select = "orders/order[id = 1]">
<order>
<xsl: value-of select = "id"/>
<xsl: value-of select = "number"/>
<xsl: value-of select = "type"/>
</order>
</xsl: for-each>
<xsl: for-each select = "quantities/quantity">
<order>
<xsl: value-of select = "id"/>
<xsl: value-of select = "number"/>
<xsl: value-of select = "type"/>
</order>
</xsl: for-each>
</output>
您需要通过匹配订单id将数量链接到各自的订单。最好的方法是使用键: XSLT1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="qty" match="quantity" use="id_order"/>
<xsl:template match="/">
<output>
<orders>
<xsl:for-each select="output/orders/order">
<order>
<xsl:copy-of select="id|number|type"/>
<xsl:for-each select="key('qty', id)">
<xsl:element name="{unit}">
<xsl:value-of select="value"/>
</xsl:element>
</xsl:for-each>
</order>
</xsl:for-each>
</orders>
</output>
</xsl:template>
</xsl:stylesheet>
请注意,我们假设每个订单的每个单元数量不超过一个(即不需要求和)。此外,在我看来,目标结构不如您开始使用的结构有用。您尝试过什么吗?请包含未按预期工作的XSLT。问题是什么?我只看到陈述。一些让你开始的想法:和
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl: template match = "/">
<output>
<xsl: for-each select = "orders/order[id = 1]">
<order>
<xsl: value-of select = "id"/>
<xsl: value-of select = "number"/>
<xsl: value-of select = "type"/>
</order>
</xsl: for-each>
<xsl: for-each select = "quantities/quantity">
<order>
<xsl: value-of select = "id"/>
<xsl: value-of select = "number"/>
<xsl: value-of select = "type"/>
</order>
</xsl: for-each>
</output>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="qty" match="quantity" use="id_order"/>
<xsl:template match="/">
<output>
<orders>
<xsl:for-each select="output/orders/order">
<order>
<xsl:copy-of select="id|number|type"/>
<xsl:for-each select="key('qty', id)">
<xsl:element name="{unit}">
<xsl:value-of select="value"/>
</xsl:element>
</xsl:for-each>
</order>
</xsl:for-each>
</orders>
</output>
</xsl:template>
</xsl:stylesheet>