我已经分配了一个新项目来使用XSLT样式表将一个XML文档转换为另一种XML格式。XSLT for XML to XML窘境
我已经花了最后四个小时浏览StackOverflow和其他在线的档案,试图找出如何达到理想的结果,但我找不到任何指向正确的方向。
这里的原始文件格式:
<?xml version="1.0"?>
<PODOrderSheet_Main>
<estimate>
<customer>LINFNC</customer>
<jobType>5020</jobType>
<JobParts>
<JobPart>
<jobPart>01</jobPart>
<contactNum/>
<JobNotes>
<JobNote>
<department>001</department>
<jobPart>01</jobPart>
<note><![CDATA[Rush Order]]></note>
</JobNote>
</JobNotes>
</JobPart>
</JobParts>
</estimate>
<estimate>
<customer>LINFNC</customer>
<jobType>5020</jobType>
<JobParts>
<JobPart>
<jobPart>01</jobPart>
<contactNum/>
<JobNotes>
<JobNote>
<department>001</department>
<jobPart>01</jobPart>
<note><![CDATA[Rush Order]]></note>
</JobNote>
</JobNotes>
</JobPart>
</JobParts>
</estimate>
<estimate>
<customer>LINFNC</customer>
<jobType>5020</jobType>
<JobParts>
<JobPart>
<jobPart>01</jobPart>
<contactNum/>
<JobNotes>
<JobNote>
<department>001</department>
<jobPart>01</jobPart>
<note><![CDATA[Rush Order]]></note>
</JobNote>
</JobNotes>
</JobPart>
</JobParts>
</estimate>
</PODOrderSheet_Main>
这里是它如何需要看:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE estimate>
<estimate>
<customer>LINFNC</customer>
<jobType>5020</jobType>
<JobParts>
<JobPart>
<jobPart>01</jobPart>
<contactNum/>
<JobNotes>
<JobNote>
<department>001</department>
<jobPart>01</jobPart>
<note><![CDATA[Rush Order]]></note>
</JobNote>
</JobNotes>
</JobPart>
<JobPart>
<jobPart>02</jobPart>
<contactNum/>
<JobNotes>
<JobNote>
<department>001</department>
<jobPart>02</jobPart>
<note><![CDATA[Rush Order]]></note>
</JobNote>
</JobNotes>
</JobPart>
<JobPart>
<jobPart>03</jobPart>
<contactNum/>
<JobNotes>
<JobNote>
<department>001</department>
<jobPart>03</jobPart>
<note><![CDATA[Rush Order]]></note>
</JobNote>
</JobNotes>
</JobPart>
</JobParts>
</estimate>
我能够在没有任何问题的所有元素进行复制。我陷入困境的是,我只需要第一次出现customer
和jobType
元素,但是包含来自多个estimate
块的JobParts
中的所有元素,其编号正确的顺序均落在jobPart
元素中。
如果有人能够指出我在这个项目的正确方向,我会非常感激,因为我没有自己的任何地方。
这是分组问题的一个例子,所以应该不会太难解决。您是使用XSLT1.0还是XSLT2.0,因为它如何解决它的不同?另外,为了清楚起见,客户可以有不同的'jobType'元素吗?在这种情况下,你想让他们单独分组还是一起分组?谢谢! – 2013-05-04 18:43:53
输入示例似乎不匹配输出。例如。你的输入中没有“”等。 – 2013-05-04 18:55:04
你好。感谢您的回应。这是XSLT 1.0,jobType元素将始终是从第一个估算块收集的元素。 – 2013-05-04 18:56:07