0

私はXSLとXMLの使用の初心者です。XMLドキュメントからデータをフェッチしてXSLで使用する際に問題が発生しました。現在、さまざまな方法を試していますが、うまくいかないようです。プロジェクトを完了するには、この手法を使用する必要があります。1つにできるようになると、ページ全体でできるようになります。

これが私のXMLと私のXSLドキュメントからのサンプルです:

<storelocator> 
    <!--Parent element containing all text on the page-->
    <content_text> 
        <title>
            <titlename>Store Locator</titlename> 
        </title>
        <title>
            <subtitle>FIND A STORE</subtitle>
        </title>
        <title>
            <countrydropdown>Country</countrydropdown>
        </title>
        <title>
            <address>Steet Address, City, Sate/Province OR Postal/Zip Code</address>
        </title>
        <title>
            <radiusdropdown>Radius</radiusdropdown>
        </title>
        <title>
            <featuredstore>FEATURED STORE</featuredstore>
        </title>
        <title>
            <storelocation>Newbury Street, Boston, MA USA</storelocation>
        </title>
</storelocator>

XSLは次のとおりです。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body bgcolor="white">

<div id="container" style="100%">

<div id="header" style="background: url('header.png'); height:30px;"></div>

<div id="content_container" align="center" style="text-transform: uppercase; font-family: tahoma; font-weight: normal; font-size: 0.8em">
    <div id="content" align="left" style="background-color:blue;height:845px;width:848px">

   <xsl:value-of select="titlename"/> <!--here I was trying to import the text from XML DOC-->

<br/>
<br/>
<br/>
    <img src="image.png" align="left"/><br/>
<br/>
<br/>
<br/>
<br/>

</div>
</div>

<div id="footer" style="background-color:black;clear:both;text-align:center;height:20px"></div>
</div>
</body>
</html>

</xsl:template>
</xsl:stylesheet>

基本的に私がやろうとしているのは、「ストアロケーター」のタイトルをインポートして、画像の上に表示されるようにすることですが、現在、ブラウザーで開いても何も表示されません。私はしばらくの間それをやろうとしていたので、私はいくつかの助けをいただければ幸いです。

4

1 に答える 1

2

XSLTで覚えておくべき最も重要なことの1つは、すべてのパスがコンテキストに基づいているということです。あなたの例では、コンテキストは/、テンプレートで一致しているためです//からに直行することはできませんtitlename

次のように変更してみてくださいxsl:value-of

<xsl:value-of select="storelocator/content_text/title/titlename"/>

また、XSLTはXMLを「インポート」していません。それはそれを変えています。ブラウザでXSLTを開いているだけの場合、これは機能しません。XMLを開いたときにブラウザで変換を機能させるには、XSLTを指す処理命令を追加する必要があります。

<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<storelocator> 
...
</storelocator>
于 2012-12-10T20:30:19.500 に答える