我有下面的XML:結合在XSL 2個節點集
<root>
<row>
<elem>Timestamp</elem>
<elem>ERB.CHW.BTU_CV</elem>
<elem>ERB.CHW.BTU1_CV</elem>
<elem>ERB.HW.BTU_CV</elem>
<elem>ERB.HW.BTU1_CV</elem>
<elem>ERB.KW.DEMAND_CV</elem>
<elem>ERB.KWH.MT_CV</elem>
<elem></elem>
</row>
<row>
<elem>2011/09/30 11:21:13.9062</elem>
<elem>2.307609E+09</elem>
<elem>1880067</elem>
<elem>1.068635E+08</elem>
<elem>1340.386</elem>
<elem>448.8</elem>
<elem>1427723</elem>
<elem></elem>
</row>
</root>
我想改變它,使得第一<row>
定義了新的元件(經由<elem>
)以及隨後的每個非空<elem>
提供值 - 例如如:
<root>
<row>
<Timestamp>2011/09/30 11:21:13.9062</Timestamp>
<ERB.CHW.BTU_CV>2.307609E+09</ERB.CHW.BTU_CV>
<ERB.CHW.BTU1_CV>1880067</ERB.CHW.BTU1_CV>
<ERB.HW.BTU_CV>1.068635E+08</ERB.HW.BTU_CV>
<ERB.HW.BTU1_CV>1340.386</ERB.HW.BTU1_CV>
<ERB.KW.DEMAND_CV>448.8</ERB.KW.DEMAND_CV>
<ERB.KWH.MT_CV>1427723</ERB.KWH.MT_CV>
</row>
</root>
有兩點需要注意:
- 注意如何空白
<elem>
元素將從源結構中刪除。 - 這應該適用於任何數量的
<row>
節點集。
我覺得這應該是簡單的,但我很努力甚至不知道從哪裏開始。幫幫我?
編輯: RE:上面#2,我不想複製初始的<row>
nodeset(它用於定義新的元素)。相反,該解決方案應該適用於包含數據點的任何<row>
節點集(即,如果第二個節點集連續重複5次)。
ABach,對不起,我不understanr你的編輯。最好給(在問題中)一個特定的XML和想要的結果的例子。你的意思是元素名稱總是隻在第一行中定義,而所有其他行都包含這些元素的數據? – 2011-12-21 03:30:08