0

我是使用 XSL 和 XML 的初学者。我在从 XML 文档中获取数据并在 XSL 中使用它时遇到问题。目前我正在尝试不同的方法,但似乎无法做到正确,我需要在整个项目中使用这种技术来完成项目。一旦我可以做到这一点,我就可以在整个页面中做到这一点。

以下是我的 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 中要记住的最重要的事情之一是所有路径都将基于上下文。在您的示例中,上下文是/因为在您的模板中,您正在匹配/. 你不能直接从/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 回答