0
添加所有的開始和結束標記到輸出
假設我有一個這樣的XML:使用XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<root xmlns:dbk="http://K.com"
xmlns:dbs="http://S.com"
xmlns:dbp="http://p.com"
xmlns:dbm="http://z.com" >
<a>
This is the first text
<alter>
<dbk:x> Hello </dbk:x>
<dbs:y role='Strong'>World </dbs:y>
</alter>
</a>
<d>
This is the second text
<alter>
<dbp:w> How are </dbp:w>
<dbm:z role='Italic'> you? </dbm:z>
</alter>
</d>
</root>
我想捕獲所有改變要素但是一切都應該被打印出來,以及包括打開和關閉標籤屬性所以輸出應該是這樣的:
<x> Hello </x>
<y role='Strong'> World </y>
<w> How are </w>
<z role='Italic'> you? </z>
注意
- 我要輸出所有標籤( 都開始和結束標記和聖壇元素中的屬性)以及文本
- 標籤可以被改變和決定應不根據標籤的名字,因爲他們都是自動生成的和動態
- 一個ALTER元素內的標籤名稱可以是從加入到另一個的alter元件像上述代碼的不同:
第一ALTER具有
<x></x>
和
<y role=''></y>
而第二ALTER具有
<w></w>
和
<z role=''><z>
而第三ALTER可以有別的東西和...。
不確定XSLT應該是什麼樣子?
編輯:基於@Mads漢森的解決方案
,輸出將是:
<dbk:x xmlns:dbk="http://K.com" xmlns:dbs="http://S.com" xmlns:dbp="http://p.com" xmlns:dbm="http://z.com"> Hello </dbk:x>
<dbs:y role="Strong" xmlns:dbs="http://S.com" xmlns:dbk="http://K.com" xmlns:dbp="http://p.com" xmlns:dbm="http://z.com">World </dbs:y>
<dbp:w xmlns:dbp="http://p.com" xmlns:dbk="http://K.com" xmlns:dbs="http://S.com" xmlns:dbm="http://z.com"> How are </dbp:w>
<dbm:z role="Italic" xmlns:dbm="http://z.com" xmlns:dbk="http://K.com" xmlns:dbs="http://S.com" xmlns:dbp="http://p.com"> you? </dbm:z>
的問題是,所有的命名空間已添加到外港,以及這是不期望。
有什麼辦法擺脫所有的命名空間?
請求的輸出(以及你現在得到的輸出)是無效的XML:你必須有一個根元素。 –
然而,輸出應該包含所有標籤,它不應該是XML輸出(即XML文件),因此不需要具有根標籤以及<?xml version =「1.0」encoding =「UTF-8 「?> – Azi
那麼也許你應該輸出這個*文本*,遵循一些預定義模式 - 而不關心打開和關閉標籤。無根輸出XML的問題在於某些處理器將全部放在一行上。這個練習的總體目的是什麼? –