3
由於某些原因,我需要更改現有的xml文件,並且我想使用xslt來完成此操作。我需要將一些名稱空間聲明從根節點移動到子節點。XSLT - 爲某些子項添加命名空間聲明
基本上我開始與文件看起來像這樣:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://ns1" xmlns:ns2="http://ns2" xmlns:ns3="http://ns3">
<env:Header>
<ns1:parent11>
<ns1:child11>value</ns1:child11>
<ns1:child11>value</ns1:child11>
<ns1:child11>value</ns1:child11>
<ns1:child12>
<ns2:child21>value</ns2:child21>
<ns2:child22>value</ns2:child22>
</ns1:child12>
</ns1:parent11>
</env:Header>
<env:Body>
<ns3:parent31>
<ns3:child31>value</ns3:child31>
<ns3:child32>value</ns3:child32>
<ns3:child33>
<ns2:parent2>
<ns2:child23>value</ns2:child23>
<ns2:child23>value</ns2:child23>
<ns2:child23>value</ns2:child23>
</ns2:parent2>
</ns3:child33>
</ns3:parent31>
</env:Body>
我需要的是這樣結束:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://ns1" xmlns:ns2="http://ns2" xmlns:ns3="http://ns3">
<env:Header>
<parent11 xmlns="http://ns1">
<child11>value</child11>
<child11>value</child11>
<child11>value</child11>
<child12>
<ns2:child21>value</ns2:child21>
<ns2:child22>value</ns2:child22>
</child12>
</parent11>
</env:Header>
<env:Body>
<parent31 xmlns="http://ns3">
<child31>value</child31>
<child32>value</child32>
<child33>
<parent2 xmlns="http://ns2">
<child23>value</child23>
<child23>value</child23>
<child23>value</child23>
</parent2>
</child33>
</parent31>
</env:Body>
我是在xslt中完成新手(我選擇它是因爲我認爲這是正確的做法),所以我是stu在剛開始的時候,我甚至不知道如何開始。
這個練習的目的是什麼? AFAICT,輸入和輸出在語義上是相同的。 –