我想變換分析下面的XML:XSLT:解析XML並重新構造XML?
<root>
<ParaList>
<Para name="p001" label="Continuous1" />
<Para name="p002" label="Continuous5" />
<Para name="p003" label="[Categorical3=1]" />
<Para name="p004" label="[Categorical3=2]" />
<Para name="p005" label="[Categorical3=3]" />
</ParaList>
<ParaMatrix>
<PCell paraName="p001" coef="1.043"/>
<PCell paraName="p002" coef="0.841"/>
<PCell paraName="p003" coef="0.907"/>
<PCell paraName="p004" coef="-0.26"/>
<PCell paraName="p005" coef="5.333"/>
</ParaMatrix>
</root>
到一個新的XML:
<root>
<PMatrix>
<NumericCell paraName="Continuous1" coef="1.043"/>
<NumericCell paraName="Continuous5" coef="0.841"/>
<CategoricalCell value="1" paraName="Categorical3" coef="0.907"/>
<CategoricalCell value="2" paraName="Categorical3" coef="-0.26"/>
<CategoricalCell value="3" paraName="Categorical3" coef="5.333"/>
</PMatrix>
</root>
在原始XML中,有3個變量Continous1,Continuous5,Categorical3。連續1 &連續5是連續數值,分類3是3個可能值(1,2,3)的分類,它們被視爲3個獨立參數(p003,p004,p005)。每個參數都有一個係數。 可能有更多的變量,他們不遵循任何命名轉向。你只能說有些是絕對的,因爲label =「[categoricalVariableName = value]」。每個分類變量,如果它有M個可能的值,則生成M個參數。
我想解析原始的XML,得到係數(係數)直接映射到變量,而不是參數。如果它是一個連續變量,
<NumericCell paraName="Continuous1" coef="1.043"/>
如果是分類變量,
<CategoricalCell value="1" paraName="Categorical3" coef="0.907"/>
<CategoricalCell value="2" paraName="Categorical3" coef="-0.26"/>
<CategoricalCell value="3" paraName="Categorical3" coef="5.333"/>
我使用XSLT 1.0版本。非常感謝你的幫助。
什麼版本的XSLT?你有什麼嘗試? –
問題不明確。輸入中總會有5個'Para'元素? –
我已經重寫了我原來的問題。我正在使用XSLT版本1.0。我沒有多少嘗試,因爲我不知道該怎麼做。 Th – Fischlein