2014-09-05 66 views
-1

我輸入的圖像如圖所示,並且我希望輸出如圖所示。 我的問題是如何控制列表級別,因爲輸出文件只有一個級別,所以如果有人有一個想法,我會很高興 源文件可以有2個以上的級別。 輸入:源文件中的XSLT級別,但目標文件中沒有級別

xml version="1.0"?> 
<Index> 
<Indentatio> 
<Explicatus>1)</Explicatus> 
<Char>1)on Level 1</Char> 
</Indentatio> 
<Index> 
<Indentatio> 
<Explicatus>a)</Explicatus> 
<Char> a) on level 2</Char> 
</Indentatio> 
<Indentatio> 
<Explicatus>b)</Explicatus> 
<Char> b) on level 2</Char> 
</Indentatio> 
</Index> 
<Indentatio> 
<Explicatus>2)</Explicatus> 
<Char>1)on Level 1</Char>v 
</Indentatio> 
</Index> 

輸出:

<List> 
<ListItem Level="1" Class="1"> 
1) on level 1 
1) on level 1 
</ListItem> 
<ListItem Level="2" Class="1"> 
<ID>a)</ID> 
a) on level 2 
</ListItem> 
<ListItem Level="2" Class="1"> 
<ID>b)</ID> 
b) on level 2 
</ListItem> 
<ListItem Level="1" Class="1"> 
<ID>2)</ID> 
2) on level 1 
</ListItem> 
</List> 
+0

我看不到任何圖片。但是你不應該將你的輸入和輸出作爲圖片發佈,而應該包含XML _as text_,以便我們可以複製和粘貼它,並且還包括迄今爲止嘗試過的XSLT。請編輯問題以包含這些詳細信息。 – 2014-09-05 14:05:27

+0

我不知道圖片發生了什麼,但這裏是代碼。 – 2014-09-05 17:43:01

+0

我不認爲你的輸出與輸入匹配。如果是這樣,你需要解釋如何。 – 2014-09-05 19:47:21

回答

0

我猜你想要的東西,如:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/"> 
    <List> 
     <xsl:for-each select="//Indentatio"> 
      <ListItem Level="{count(ancestor::Index)}" Class="1"> 
       <ID><xsl:value-of select="Explicatus"/></ID> 
       <xsl:value-of select="Char"/> 
      </ListItem> 
     </xsl:for-each> 
    </List> 
</xsl:template> 

</xsl:stylesheet> 

應用到你的輸入例如,這將返回:

<?xml version="1.0" encoding="UTF-8"?> 
<List> 
    <ListItem Level="1" Class="1"> 
     <ID>1)</ID>1)on Level 1</ListItem> 
    <ListItem Level="2" Class="1"> 
     <ID>a)</ID> a) on level 2</ListItem> 
    <ListItem Level="2" Class="1"> 
     <ID>b)</ID> b) on level 2</ListItem> 
    <ListItem Level="1" Class="1"> 
     <ID>2)</ID>1)on Level 1</ListItem> 
</List> 

請注意,輸出混合內容很少是一個好主意。

+0

這正是我所期待的,非常好的解決方案,非常感謝。 問題是,我根據輸入文件從一個系統獲取數據,並且必須根據輸出文件中使用的模式將數據傳送到另一個系統。 – 2014-09-05 20:58:23