1

わかりました。2 つの XML ファイル (1 つはアニメと映画用) があります (同じタグと DTD を使用するため、XML ファイルの 1 つの形式のみを確認する必要があります)。1 XML (ムービー XML ファイル) ファイルの形式は次のとおりです。

<Stories>
<Fan_Fiction>
    <Genre> Movie </Genre>
    <World> The Matrix </World>
    <Story>
        <Title Alternative_Title="The Matrix Sensolutions"> The Matrix Revolverlutions </Title>
        <Year_Made> 2003 </Year_Made>
        <Author Gender="Male">
            <First_Name> James </First_Name>
            <Last_Name> Blake </Last_Name>
        </Author>
        <Author_Country> Unknown </Author_Country>
        <Language> English </Language>
        <Theme> Reality </Theme>
        <Theme> Artificial Intelligence </Theme>
        <Theme> Freedom </Theme>
        <Content_Warning> Intense violence. Nudity. Strong language. Drug use. </Content_Warning>
        <Description> In this alternative ending to the Matrix trilogy; we find Neo has survived his epic battle with Smith.
        However, freeing humanity from the Matrix is proving more difficult than expected </Description>
        <Link> http://matrix.wikia.com/wiki/Neo </Link>
        <Image> Neo.jpg </Image>
    </Story>
</Fan_Fiction>

はい、XML ファイル内の各映画に「Fan_Fiction」タグ (すべての子タグを含む) があります。

基本的に、2 番目の XML (アニメをテーマにした XML ファイル) ファイルは、すべての「ジャンル」タグ内に「アニメ」が含まれていることを除いて、まったく同じ形式です。

さて、これで両方の XML ファイルを HTML に出力する XSLT ファイルができました (同じタグと DTD を共有しているため、両方の XML ファイルを 1 つの XSL ファイルにリンクできます)。私の Q. は、HTML コマンド ( "<img src=" " />"XSLT ファイルのコマンド) を使用して、2 つの XML ファイルで名前が付けられた画像 (XML ファイルの「Neo.jpg」部分) を表示する方法です。

さて、それはたくさんのように思えますが、基本的には"<img src=" " />"、2 つの XML ファイルを「実行」すると、XSL ファイルが参照され、それぞれの画像が表示されるように、XSL ドキュメントでコマンドを使用できると言われました。両方のドキュメントで機能するように、XSLT 内で HTML コマンドを使用してこれを行うにはどうすればよいでしょうか?

4

1 に答える 1

2

私がそれをしなければならなかったとき、私は思いついた

<img alt="">
 <xsl:attribute name="src">
  <xsl:value-of select="Stories/Fan_Fiction/Story/Image"/>
 </xsl:attribute>
</img>

XSLT ファイルで。とすべてで少しばかげているように見えますが、</img>うまく機能します! Firefox と Opera では、つまり。Chrome は協力したくないようですので、少し試してみる必要があるかもしれません。とにかく、これが役立つことを願っています。

編集:これは、質問のファイルで動作し、すべての Fan_Fiction 要素をループする、より完全な xsl ファイルです。

<?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>
   <title>Fanfix</title>
   <body>
    <xsl:for-each select="Stories/Fan_Fiction">
     <h1><xsl:value-of select="World"/></h1>
     <h2><xsl:value-of select="Story/Title"/></h2>
     <img alt="">
      <xsl:attribute name="src">
       <xsl:value-of select="Story/Image"/>
      </xsl:attribute>
     </img>
     <p>Author: <xsl:value-of select="Story/Author/First_Name"/>
         <xsl:value-of select="Story/Author/Last_Name"/></p>
     <p>etc</p>
    </xsl:for-each>
  </body>
  </html>
 </xsl:template>
</xsl:stylesheet>

http://strictquirks.nl/temp/neo/stories.xmlにデモを置いたので、動作を確認できます。

ところで、XML の img 名の周りのスペースを削除する必要がありました。それが Chrome で機能しなかった理由です。Chrome はファイル名にスペースが含まれていると認識していました。

于 2013-10-24T06:52:46.550 に答える