【发布时间】:2014-06-05 15:56:01
【问题描述】:
我需要:
- 将
input.xml(下面的文件)转换为output.xml的格式 - 创建另一个将按每个金额显示的 XLS:
KG、PAL和M3总值; - 将标签
<quantity>替换为同一 XSL 中的标签<amount>第 2 点; - 创建另一个 XSL,它只是为每个 XSL 添加一个额外的标签
<hour><order>并在此标签内显示加载时间 (hh:MM)
但首先我需要转换这个文件(input.xml):
<?xml version="1.0" encoding="ISO-8859-1"?>
<output>
<orders>
<order>
<id>1</id>
<number>10002</number>
<type>Loading</type>
<date>2013-01-01T02:30:00</date>
</order>
<order>
<id>2</id>
<number>10003</number>
<type>Loading</type>
<date>2013-01-01T010:30:00</date>
</order>
<order>
<id>3</id>
<number>10004</number>
<type>Loaded</type>
<date>2013-01-01T12:30:00</date>
</order>
</orders>
<quantities>
<quantity>
<id_order>1</id_order>
<unit>KG</unit>
<value>1000</value>
</quantity>
<quantity>
<id_order>1</id_order>
<unit>PAL</unit>
<value>3</value>
</quantity>
<quantity>
<id_order>1</id_order>
<unit>M3</unit>
<value>1.5</value>
</quantity>
<quantity>
<id_order>2</id_order>
<unit>KG</unit>
<value>2000</value>
</quantity>
<quantity>
<id_order>2</id_order>
<unit>PAL</unit>
<value>4</value>
</quantity>
<quantity>
<id_order>3</id_order>
<unit>KG</unit>
<value>5000</value>
</quantity>
</quantities>
</output>
到这个文件(output.xml):
<?xml version="1.0" encoding="ISO-8859-1"?>
<output>
<orders>
<order>
<id>1</id>
<number>10002</number>
<type>Loading</type>
<KG>1000</KG>
<PAL>3</PAL>
<M3>1.5</M3>
</order>
<order>
<id>2</id>
<number>10003</number>
<type>Loading</type>
<KG>2000</KG>
<PAL>4</PAL>
</order>
<order>
<id>3</id>
<number>10004</number>
<type>Loaded</type>
<KG>5000</KG>
</order>
</orders>
</output>
我试过这个但它不完整,我不知道如何将值(如:输入文件中的PAL)转换为属性(如输出文件中的<PAL>...</PAL>)。我环顾四周并尝试了几件事,但它不起作用。有人可以帮我弄这个吗。下面是我的 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>
【问题讨论】:
-
你有什么尝试吗?请包括您的未按预期工作的 XSLT。
-
有什么问题?我只看到陈述。