0

xsltとxmlを使用して画像を表示しようとしています。他のすべてが機能して表示されますが、タグ「picture」内のphoto.xmlファイルでパスが指定されている実際の画像は表示されません。

次のようなphoto.xmlファイルがあります。

<?xml version="1.0"?>
<pic:photoCatalog xmlns:pic="pictureCatalog">
  <pic:photos>
    <pic:photo>
           <pic:title>Alcazar</pic:title>
           <pic:location>Segovia - Spain</pic:location>
           <pic:picture> pic
           <pic:img src="images/DSC_0183.jpg" orginalwidth="150" />
           </pic:picture>
           <pic:date>Jan 2013</pic:date>
           <pic:camera>Sony</pic:camera>
           <pic:resolution>12px</pic:resolution>
           <pic:format>.jpg</pic:format>
           <pic:description>
            Medieval Castle over the hill overlooking the old city of Segovia.
           </pic:description>
    </pic:photo>
   </pic:photos>

</pic:photoCatalog>

次に、次のようなindex.xmlファイルがあります。

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet type="text/xsl" href="merge.xsl"?>

<pic:catalog xmlns:pic = "pictureCatalog">
    <pic:logo>Logo</pic:logo>
    <Author>User Name</Author>
    <pic:allPhotos>photos</pic:allPhotos>
</pic:catalog>

そして最後に、変革:

 <!-- All the photos-->
   <xsl:template match = "pic:catalog/pic:allPhotos">
     <html>
         <head>
            <link rel="stylesheet" type="text/css" href="Style.css" />
         </head>
         <body>

      <!--Loop for the sort-->
    <xsl:for-each select="document(concat(., '.xml'))/pic:photoCatalog/pic:photos">
                <!--point at the fine-->
                <xsl:sort select="pic:photo" />
                 <xsl:value-of select="pic:photo"/><br/>
            </xsl:for-each>

         </body>
   </html>
   </xsl:template>

期待される出力は、タグからの情報を含む画像のリストです。私が言ったように、すべてはうまくいきますが、画像は表示されません。

<div id="CenterAreaTop">


                <link rel="stylesheet" type="text/css" href="Style.css">


           Acqueduct
           Segovia <!--the picture right after this-->
           Jan 2013
           Olympus
           12px
           .jpg

2000 Year old aqueduct built by the romans ca. xxxx during the reign of xxx

.....

 </div>

誰か助けてもらえますか?

ありがとうございました!

4

1 に答える 1

0

わかりました、これはどうですか:

  <xsl:template match = "pic:catalog/pic:allPhotos">
    <html>
      <head>
        <link rel="stylesheet" type="text/css" href="Style.css" />
      </head>
      <body>
        <xsl:apply-templates select="document(concat(., '.xml'))/pic:photoCatalog/pic:photos/pic:photo">
          <xsl:sort select="pic:title" />
        </xsl:apply-templates>          
      </body>
    </html>
  </xsl:template>

  <xsl:template match="pic:photo">
    <xsl:apply-templates select="*" />
    <br />
  </xsl:template>

  <xsl:template match="pic:img">
    <img src="{@src}" alt="" />
  </xsl:template>
于 2013-01-25T13:06:59.643 に答える