我想从包含多个标题行的文件创建一组xml,后面是每个标题的多个详细信息行。XSL头和细节分组
这里是原始XML的示例:
编辑:随后的报头片材将发生变化详细的张数。所以,Sheet [4]/FIELD1将不总是具有Header的值。此外,该文件将始终有一个或多个页眉表。表格是行。
编辑:XSLT-1.0
<Root>
<Sheet>
<FIELD1>Header</FIELD1>
<FIELD2>Value1</FIELD2>
<FIELD3>Value2</FIELD3>
</Sheet>
<Sheet>
<FIELD1>Detail</FIELD1>
<FIELD2>Value3</FIELD2>
<FIELD3>Value4</FIELD3>
</Sheet>
<Sheet>
<FIELD1>Detail</FIELD1>
<FIELD2>Value5</FIELD2>
<FIELD3>Value6</FIELD3>
</Sheet>
<Sheet>
<FIELD1>Header</FIELD1>
<FIELD2>Value7</FIELD2>
<FIELD3>Value8</FIELD3>
</Sheet>
<Sheet>
<FIELD1>Detail</FIELD1>
<FIELD2>Value9</FIELD2>
<FIELD3>Value10</FIELD3>
</Sheet>
<Sheet>
<FIELD1>Detail</FIELD1>
<FIELD2>Value11</FIELD2>
<FIELD3>Value12</FIELD3>
</Sheet>
<Sheet>
<FIELD1>Detail</FIELD1>
<FIELD2>Value13</FIELD2>
<FIELD3>Value14</FIELD3>
</Sheet>
</Root>
这里是输出应类似于什么:
编辑:发票的数量将通过头片材(行)的数目来确定。 LineItem行将与Header后面的Detail表相同。
<Root>
<Invoice AttribOne="Value1" AttribTwo="Value2" >
<LineItem LIAttribOne="Value3" LIAttribTwo="Value4"/>
<LineItem LIAttribOne="Value5" LIAttribTwo="Value6"/>
</Invoice>
<Invoice AttribOne="Value7" AttribTwo="Value8" >
<LineItem LIAttribOne="Value9" LIAttribTwo="Value10"/>
<LineItem LIAttribOne="Value11" LIAttribTwo="Value12"/>
<LineItem LIAttribOne="Value13" LIAttribTwo="Value14"/>
</Invoice>
</Root>
编辑:如下回答:
确定。如何标识标题字段?或细节字段? “标题”和“细节”这两个词是否有意义? – helderdarocha
Sheet/FIELD1将始终具有“标题”或“详细信息”的值。表格之间没有其他区别。 – Alsace