我有一個多層次的XML,我需要使用XSLT 1.0複製一組具有新節點的節點。下面是一個示例xml。XSLT - 從XML創建重複節點
<?xml version="1.0"?>
<Parent>
<ChildL1 Childtype="A">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1>
<ChildL1L2/>
</ChildL1L1>
</ChildL1>
<ChildL1 Childtype="B">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1/>
</ChildL1>
</Parent>
希望的輸出:
<?xml version="1.0"?>
<Parent>
<ChildL1 Childtype="A">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1>
<ChildL1L2/>
</ChildL1L1>
</ChildL1>
<ChildL1 Childtype="B">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1/>
</ChildL1>
<NewNode>
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1/>
</NewNode>
</Parent>
這裏NewNode具有ChildL1的僅當Childtype = 「B」 子節點。
在此先感謝;讓我知道這個問題不清楚。這是我第一次發佈這類問題。
編輯顯示更深的XML節點:
<?xml version="1.0"?>
<Parent>
<ChildL1 Childtype="A">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1>
<ChildL1L2>
<ChildL1L3 index="1"/>
<ChildL1L3 index="2"/>
<ChildL1L3 index="3"/>
</ChildL1L2>
</ChildL1L1>
</ChildL1>
<ChildL1 Childtype="B">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1/>
</ChildL1>
</Parent>
期望的輸出(挑父/ ChildL1/ChildL1L1/ChildL1L2/ChildL1L3其中ChildL1/Childtype = 'A')
<?xml version="1.0"?>
<Parent>
<ChildL1 Childtype="A">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1>
<ChildL1L2>
<ChildL1L3 index="1"/>
<ChildL1L3 index="2"/>
<ChildL1L3 index="3"/>
</ChildL1L2>
</ChildL1L1>
</ChildL1>
<ChildL1 Childtype="B">
<ChildL1L1/>
<ChildL1L1/>
<ChildL1L1/>
</ChildL1>
<NewNode>
<ChildL1L3 index="1"/>
<ChildL1L3 index="2"/>
<ChildL1L3 index="3"/>
</NewNode>
</Parent>
你的XML是無效的,而且它正在它正是你想要知道的困難。在第一個示例中,將打開,但不會關閉。此外,您有,但是從縮進中相應的關閉標記中,元素名稱不匹配。複製並粘貼到http://www.xmlvalidation.com/ –
2014-11-24 04:13:37
對不起,並感謝您指出。我現在關閉了。我將嘗試@StuartLC解決方案 –
mantlex
2014-11-24 04:28:08
「*這裏的NewNode僅在Childtype =」B「時才具有ChildL1的Children節點。*」這不是我所看到的。恕我直言,如果你的節點有一個唯一的ID,你的問題會更清晰 - 所以你可以看到哪個ChildL1L1是哪個。 – 2014-11-24 05:41:57