本文介绍了无法使用 xslt 文件在

问题描述

我设计了一个 xslt 文件,用于来自

<搜索><id>1</id><name>恐怖</name><address>09, West Road</address><city>伦敦</city><pcode>se4 7jk</pcode><联系方式>020574110832</联系方式></搜索></房屋>

以及xslt文件的问题部分

<xsl:attribute name="href"><xsl:value-of select="//search/name"/></xsl:attribute></xsl:模板>
解决方案

我假设您希望为每个名称添加一个链接.在这种情况下,您将需要类似

<a><xsl:attribute name="href"><xsl:text>#</xsl:text><xsl:value-of select="."/></xsl:attribute><xsl:value-of select="."/></a></xsl:模板>

这将创建像 horror</a>

这样的元素

编辑

好的,下面是一个表格示例,其中 div 元素可通过单击按钮折叠/展开.我留给你做的漂亮的布局;它只是作为如何使用 xslt 创建 html 的示例,包括 javascript 切换隐藏/显示.

<身体><表格边框="纯黑色 1pt;"style="border-collapse:collapse;padding:0;border-spacing:0"><tr><th>房屋名称</th><th>细节</th></tr><xsl:apply-templates/></html></xsl:模板><xsl:template match="name"><tr><td><输入><xsl:attribute name="type">button</xsl:attribute><xsl:attribute name="onclick">toggleById('<xsl:value-of select="."/>');return true;</xsl:attribute><xsl:attribute name="onMouseOver">this.style.cursor='hand'</xsl:attribute><xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute></input></td><td><div><xsl:attribute name="id"><xsl:value-of select="."/></xsl:attribute><xsl:attribute name="style">display:none</xsl:attribute><xsl:copy-of select=".."/>

</td></tr></xsl:模板><xsl:template match="text()"/></xsl:stylesheet>

适用于

这给了

<头><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>试用</title><script type="text/javascript" language="javascript">//根据id展开和折叠功能函数 toggleById(IdStart) {var divs = document.getElementsByTagName('div');for (var i=0; i

<身体><表格边框="纯黑色 1pt;"style="border-collapse:collapse;padding:0;border-spacing:0"><tr><th>房屋名称</th><th>细节</th></tr><tr><td><input type="button" onclick="toggleById('horror'); return true;"onMouseOver="this.style.cursor='hand'" value="horror"></td><td><div id="horror" style="display:none"><搜索><id>1</id><name>恐怖</name><address>09, West Road</address><city>伦敦</city><pcode>se4 7jk</pcode><联系方式>020574110832</联系方式></搜索>

</td></tr><tr><td><input type="button" onclick="toggleById('nice'); return true;"onMouseOver="this.style.cursor='hand'" value="nice"></td><td><div id="nice" style="display:none"><搜索><id>2</id><name>nice</name><address>05, East Road</address><city>伦敦</city><pcode>po4 3df</pcode><联系>无</联系></搜索>

</td></tr></html>

在浏览器中尝试一下,您将体验展开/折叠行为.

I designed a xslt file for a list view of house names from

<Houses>
    <search>
        <id>1</id>
        <name>horror</name>
        <address>09, west Road</address>
        <city>London</city>
        <pcode>se4 7jk</pcode>
        <contact>020574110832</contact>
        </search>
</Houses>

And the problem part of xslt file

<xsl:template match="name">
     <xsl:attribute name="href">
     <xsl:value-of select="//search/name"/>
     </xsl:attribute>
</xsl:template>
解决方案

I assume you wish to add a link to each name. In that case you will need something like

<xsl:template match="name">
    <a>
        <xsl:attribute name="href">
            <xsl:text>#</xsl:text><xsl:value-of select="."/>
        </xsl:attribute>
        <xsl:value-of select="."/>
    </a>
</xsl:template>

This will create elements like <a href="#horror">horror</a>

EDIT

OK here's an example of a table with div elements that collapse/expand by clicking the button. Nice layout I left to do for you; it's just meant as an example of how to create an html using xslt including javascript toggle hide/show.

<?

When applied to

<?

This gives

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>trial</title>
        <script type="text/javascript" language="javascript">
                    //expand and collapse functions based on id
                    function toggleById(IdStart) {
                    var divs = document.getElementsByTagName('div');
                    for (var i=0; i<divs.length; i++) {
                    if (divs[i].id.match("^"+IdStart) == IdStart) {
                        if( divs[i].style.display == "none")
                            {
                            divs[i].style.display = "block"
                            }
                        else    {
                            divs[i].style.display = "none"
                            }
                    }
                    }
                    return true;
                    }

                </script>
    </head>
    <body>
        <table border="solid black 1pt;" style="border-collapse:collapse;padding:0;border-spacing:0">
            <tr>
                <th>house name</th>
                <th>details</th>
            </tr>
            <tr>
                <td><input type="button" onclick="toggleById('horror'); return true;" onMouseOver="this.style.cursor='hand'" value="horror"></td>
                <td>
                    <div id="horror" style="display:none">
                        <search>
                            <id>1</id>
                            <name>horror</name>
                            <address>09, west Road</address>
                            <city>London</city>
                            <pcode>se4 7jk</pcode>
                            <contact>020574110832</contact>
                        </search>
                    </div>
                </td>
            </tr>
            <tr>
                <td><input type="button" onclick="toggleById('nice'); return true;" onMouseOver="this.style.cursor='hand'" value="nice"></td>
                <td>
                    <div id="nice" style="display:none">
                        <search>
                            <id>2</id>
                            <name>nice</name>
                            <address>05, East Road</address>
                            <city>London</city>
                            <pcode>po4 3df</pcode>
                            <contact>none</contact>
                        </search>
                    </div>
                </td>
            </tr>
        </table>
    </body>
</html>

Try it out in a browser and you will experience the expand/collapse behavior.

这篇关于无法使用 xslt 文件在