我有一個問題。我有以下源XML文件:使用xslt將xml結構轉換爲另一個xml結構
源XML:
<Container>
<DataHeader>
<c id="b" value="TAG" />
<c id="g" value="Info" />
</DataHeader>
<Data>
<Rows>
<r no="1">
<c id="b" value="uid1" uid="T.A.uid1" />
<c id="g" value="uid1|tag1|attr1|somevalue1" />
</r>
<r no="1">
<c id="b" value="uid1" uid="T.A.uid1" />
<c id="g" value="uid1|tag1|attr2|somevalue2" />
</r>
<r no="2">
<c id="b" value="uid1" uid="T.A.uid1" />
<c id="g" value="uid1|tag2|attr3|somevalue3" />
</r>
<r no="10">
<c id="b" value="uid2" uid="T.A.uid2" />
<c id="g" value="uid2|tag1|attr1|somevalue4" />
</r>
<r no="11">
<c id="b" value="uid2" uid="T.A.uid2" />
<c id="g" value="uid2|tag2|attr3|somevalue5" />
</r>
</Rows>
</Data>
</Container>
元素 'ç' id爲 '克' 是在源XML重要。這是一個連接的字符串,其值由'|'。我們需要這個值來製作目標xml。 元素'c'與id'b''您可以用來分隔'uid'。值的
示例和explantion:
<c id="g" value="uid1|tag1|attr1|somevalue1" />
**uid value** | element node | **attribute** | attribute value
**uid1** | tag1 | **attr1** |somevalue1
的Al元素與相同的 'UID' 具有要被彙集到1張 「TestTag」 元件(見目標XML)。 需要將相同父元素(例如'tag1')的屬性(attr1,attr2)添加到1個元素。 我只能使用xslt(xpath)1.0。
轉換後目標xml文件應該看起來像這樣。通過XSL轉換後
目標XML:
<Container>
<TestTag>
<object UID="T.A.uid1" Name="uid1"/>
<tag1 attr1="somevalue1" attr2="somevalue2"/>
<tag2 attr3="*somevalue3"/>
</TestTag>
<TestTag>
<Iobject UID="T.A.uid2" Name="uid2"/>
<tag1 attr1="somevalue4" />
<tag2 attr3="somevalue5"/>
</TestTag>
</Container>
什麼是轉換XML源到目標XML可能的解決方案?我嘗試了幾件事,但我現在被卡住了。
+1很好的第一次問題。歡迎來到堆棧溢出! – Tomalak 2010-02-17 17:11:37