2017-02-07 94 views
0

我的XML是像下面的圖像:顯示使用XML和XSLT

<?xml version="1.0" encoding="ISO-8859-1"?>  
<chapter id="ch01"> 
    <sect1> 
     <title>Wattage</title> 
     <para>Paragraph1</para> 
     <para>Paragraph2</para> 
     <para><figure> 
       <caption> 
        <para> 
        <i>Sample image caption</i></para> 
       </caption> 
       <img src="myimagepath\cover_front.jpg"/> 
      </figure> 
     </para> 
    </sect1> 
</chapter> 
我有在我的渲染使用XSLT我的XML的HTML網頁上顯示的圖像問題

(通過C#aspx頁面)。

我的XSLT如下:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <html> 
      <body> 
       <h2>My Book</h2> 
       <xsl:apply-templates select="chapter/sect1" /> 
      </body> 
     </html> 
    </xsl:template> 
    <xsl:template match="chapter/sect1"> 
     <xsl:apply-templates select="title" /> 
     <xsl:apply-templates select="para/figure" /> 
     <br /> 
    </xsl:template> 
    <xsl:template match="title"> 
     <b><span style="font-size=22px;"> 
       <xsl:value-of select="." /> 
      </span> 
     </b> 
     <br /> 
    </xsl:template> 
    <xsl:template match="para/figure"> 
     <xsl:element name="img"> 
      <xsl:attribute name="src"> 
       <xsl:value-of select="." /> 
      </xsl:attribute> 
     </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 

我的圖像使用上面XSLT不顯示。任何人都可以請幫忙。我是XSLT新手。

+1

你在做變換服務器端或客戶端嗎?圖像路徑是相對於客戶端看到的URL還是XSLT文件? –

+0

你確定你的XML結構合理嗎?你故意這樣做: Paragraph1 ? – Rob

+0

正如@Rob所建議的那樣,我通過添加兩個結束標記''完成了輸入XML。請注意,如果檢查你的答案。 – zx485

回答

1

你正在渲染para/figure的點並不完全符合你的想法,即選擇「。」的點。圖片來源其實應該呈現的是:

<caption><para><i>Sample image caption</i></para></caption> 
<img src="myimagepath\cover_front.jpg"/> 

嘗試改變這個模板:到:

<xsl:template match="para/figure"> 
    <img src="{img/@src}" /> 
</xsl:template> 

(這是從內存的工作),所以:

  • 對/圖有兩個子元素的標題和img
  • 所以我們想要用一個屬性「src」(又是附帶的)輸出一個標籤「img」(名字相同是偶然的),我們希望th e src是當前節點的img元素的src屬性(@ ==屬性)。大括號使魔術可以將內聯值放入要呈現的標記中。
+0

非常感謝你,Murph。 現在在我的aspx頁面顯示圖像。 – Awadesh

+0

對於Rowland問題,我正在通過XML .Net控件進行服務器端XSLT轉換。我的圖片路徑是相對於網址的。我的問題是當我的圖像路徑與XSLT文件相關時,代碼是什麼?你能解釋一下這個概念嗎?非常感謝。 – Awadesh

+0

我的XML中有多個para標籤用於一個父標籤。 – Awadesh