Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用XML和XSLT显示本地链接?_Xml_Xslt - Fatal编程技术网

如何使用XML和XSLT显示本地链接?

如何使用XML和XSLT显示本地链接?,xml,xslt,Xml,Xslt,如何使用XSL和XML显示带有本地href地址的链接,使其成为可单击的链接 到目前为止,我的XSLT: 我的XML: 目前的结果是: 应将其呈现为 <a href="\\myFolder\myApps\Tool1.jpg">Tool1</a> 但是,我的链接上缺少反斜杠,因此它不起作用 我有很多这样的XML文件,所以如果可能的话,只需更改XSLT中的代码就可以了。 谢谢你的建议 XSLT中的以下更改应保持@Location的值不变 下面是完整的XSLT <xsl:

如何使用XSL和XML显示带有本地href地址的链接,使其成为可单击的链接

到目前为止,我的XSLT:

我的XML:

目前的结果是:

应将其呈现为

<a href="\\myFolder\myApps\Tool1.jpg">Tool1</a>
但是,我的链接上缺少反斜杠,因此它不起作用

我有很多这样的XML文件,所以如果可能的话,只需更改XSLT中的代码就可以了。
谢谢你的建议

XSLT中的以下更改应保持@Location的值不变

下面是完整的XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Binaries">
    <xsl:if test='count(Item) > 0'>
        <h3>Tools</h3>
        <ul>
            <xsl:for-each select="Item">
                <li>
                    <a href="{@Location}">
                        <xsl:value-of select="@Title" />
                    </a>
                </li>
            </xsl:for-each>
        </ul>
    </xsl:if>
</xsl:template>
</xsl:stylesheet>
当应用于共享XML时,结果如下所示

<h3>Tools</h3>
<ul>
    <li>
        <a href="\\myFolder\myApps\Tool1.jpg">Tool1</a>
    </li>
    <li>
        <a href="\\myFolder\myApps\Tool2.jpg">Tool2</a>
    </li>
</ul>

我觉得不错。你到底有什么问题?链接不起作用,因为它的格式不正确。你缺少结束标记。请注意,Windows平台也支持正斜杠/。如果对本地机器上的本地文件进行浏览是可取的,请考虑使用前向斜线,而不是反斜杠指定协议以及文件的路径。例如file:///myfolder/myapps/Tool1.jpg. 这需要更改所有XML文件,这可以使用高级编辑器或GNU命令行工具(如sed)轻松完成。您的输入XML和XSLT与声明的输出不对应。样式表包含单个模板匹配元素,而输入XML中没有此类元素。因此,只有默认模板将匹配任何节点,而这将不会产生显示的输出。
<a href="\\myFolder\myApps\Tool1.jpg">Tool1</a>
<a href="{@Location}">
    <xsl:value-of select="@Title" />
</a>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Binaries">
    <xsl:if test='count(Item) > 0'>
        <h3>Tools</h3>
        <ul>
            <xsl:for-each select="Item">
                <li>
                    <a href="{@Location}">
                        <xsl:value-of select="@Title" />
                    </a>
                </li>
            </xsl:for-each>
        </ul>
    </xsl:if>
</xsl:template>
</xsl:stylesheet>
<h3>Tools</h3>
<ul>
    <li>
        <a href="\\myFolder\myApps\Tool1.jpg">Tool1</a>
    </li>
    <li>
        <a href="\\myFolder\myApps\Tool2.jpg">Tool2</a>
    </li>
</ul>