2017-05-11 59 views
0

我想將下面的xml格式化爲下面指定的html格式。 基本上,內容需要根據tid分開到單獨的行。 當tid爲1時,1.1項目應顯示在同一行中。格式xml與xslt

我的源XML

<xml> 
<projects> 
    <dept> 
     <emp> 
      <Name>Name1<Name> 
      <tid>1<tid> 
      <proj>Proj1<proj> 
     </emp> 
     <emp> 
      <Name>Name1<Name> 
      <tid>1.1<tid> 
      <proj>Proj2<proj> 
     </emp> 
     <emp> 
      <Name>Name2<Name> 
      <tid>2<tid> 
      <proj>Proj3<proj> 
     </emp> 
     <emp> 
      <Name>Name2<Name> 
      <tid>2.1<tid> 
      <proj>Proj4<proj> 
     </emp> 
     <emp> 
      <Name>Name2<Name> 
      <tid>2.2<tid> 
      <proj>Proj5<proj> 
     </emp> 
     <emp> 
      <Name>Name3<Name> 
      <tid>3<tid> 
      <proj>Proj6<proj> 
     </emp> 
    </dept> 
</projects> 

預期格式:

<table> 
<tr> 
    <td>Name</td> 
    <td>tid</td> 
    <td>proj1</td> 
    <td>proj2</td> 
    <td>proj3</td> 
</tr> 
<tr> 
    <td>Name2</td> 
    <td>1</td> 
    <td>Proj1</td> 
    <td>Proj2</td> 
</tr> 
<tr> 
    <td>Name3</td> 
    <td>2</td> 
    <td>Proj3</td> 
    <td>Proj4</td> 
    <td>Proj5</td> 
</tr> 
<tr> 
    <td>Name1</td> 
    <td>3</td> 
    <td>Proj6</td> 
    <td></td> 
    <td></td> 
</tr> 
</table> 
+1

歡迎Bharath。你有什麼嘗試?您也可以通過張貼您的XSL獲得最多的幫助。 –

+1

輸出中的名稱似乎與輸入不匹配。爲什麼最後一個表格中有2個空單元? - 無論如何,這是一個*分組*問題。做一個搜索 - 這可能是最經常被問到的XSLT問題。請注意,對於XSLT 1.0或2.0,答案是不同的。 –

+0

另請注意,您的XML輸入格式不正確。 –

回答

0

看起來像一個標準的分組問題

substring-before(concat(tid,'.') '.') 

爲分組密鑰。

分組問題的解決方案很大程度上取決於XSLT 1.0還是XSLT 2.0,但在知道「分組」是要搜索的關鍵字時,您可以在任何XSLT教科書或教程中找到示例。