我是XSLT的新手。我一直在試圖轉換XML很長一段時間,但無法做到。 的輸入XML是這樣的:如果它的值是version 2
使用xslt替換xml中屬性值中的字符串1.0
<Load v:MajorVersion="05" v:MinorVersion="01" xmlns="version 2" xmlns:v="version 2">
<annotation/>
<Header></Header>
<Body></Body>
</Load>
輸出應該替換屬性xmlns
從version 2
值和xmlns:v
到version 1
,否則應保持原樣。
問題是這些屬性很容易發生變化,輸入xml可能類似於xmlns:n
或xmlns:m
,或者這些屬性可能不存在。
最後,我們應該尋找節點Load
的所有屬性,並在所有的屬性搜索字符串version 2
(喜歡的xmlns,XMLNS:V,XMLNS:N等) 和version 1
更換。
請幫幫我。相信我我花了數小時爲此尋找答案。
謝謝,我已經看到了上述解決方案。問題是,命名空間限定符是動態的,它可能會以v2或pidx的形式出現,甚至會出現其他情況。也可以有多個名稱空間聲明,其值爲「版本2」。目的是替換所有名稱空間聲明,從「版本2」到「版本1」 –
您正在討論命名空間uri相同的命名空間前綴。他們不重要。你只需要在你的xslt中有一個獨特的前綴,它不需要和xml中的相同。試試上面的模板。 –