2009-11-21 72 views
0

以下字符串在我的源XML中使用切換進行編碼,並且我希望它更改爲具有格式信息的節點。 (這是XLIFF到WordprocessingML。)XSL:切換的跟蹤元素

「文本,粗體文本,粗體和斜體文本,粗體文本,純文本。」

源XML:

<text> 
Text 
<format id="1" type="bold" /> 
bold text, 
<format id="2" type="italics" /> 
bold and italics text, 
<endformat id="2" /> 
bold text, 
<endformat id="1" /> 
plain text. 
</text> 

我需要:

<run> 
    <format></format> 
    <text>Text, </text> 
</run> 
<run> 
    <format><b/></format> 
    <text>bold text, </run> 
</run> 
<run> 
    <format><b/><i/></format> 
    <text>bold and italics text, </run> 
</run> 
<run> 
    <format><b/></format> 
    <text>bold text, </run> 
</run> 
<run> 
    <format></format> 
    <text>plain text.</run> 
</run> 

如果我使用一個程序語言,我會保持什麼樣的格式是積極的運行記錄和寫出來的<format>元素因此。

但我該如何在XSL中做到這一點?

回答

1

由於text子節點是交替之後format對稱endformattext()我認爲文本(),您可以通過節點XSL的列表:調用模板遞歸,處理兩個起始節點和2個端節點和每次由主要的2個節點縮短列表並拖曳2個節點。但我不清楚你的文件的語法,所以這可能是不可能的。