提问人:Emanuel 提问时间:3/30/2020 最后编辑:Emanuel 更新时间:3/31/2020 访问量:139
如何在 xslt 中使用 xpath 来导航 xhtml 文件?
How to use xpath in xslt to navigate a xhtml file?
问:
有什么方法可以在 XSLT 中使用 XPATH 导航 XHTML 文件?所以我有这个xhtml文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<!-- <link rel="stylesheet" type="text/css" href="stili.css" /> -->
<script src="jsorari.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1 style="text-align: center;">XMLHTTPREQUEST</h1>
<!--<div id="div1"></div>-->
<!-- <p id="txt1"></p> <p id="txt2"></p>-->
<select id="dega" onchange="changeddl1(this);"></select><br/><br/>
<select id="viti" onchange="changeddl2(this)"></select><br/>
<select id="paralel" name="Paralel"></select><br/>
<button type="button" name="btn" id="btn1" onclick="afishovlera()">Afisho</button>
</div><br/><br/>
<table id="afishim"></table>
</form>
</body>
</html>
假设我想使用 id=viti 导航到选择 我该怎么做以及我应该在xhtml和xslt文件中包含哪些命名空间,如果有办法的话。请帮帮我。
这是完整的 xslt 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="Viti" select="//*[@id='viti']" />
<xsl:variable name="Paraleli" select="//*[@id='paralel']" />
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<h2>Orari mesimor</h2>
<table border="1" style="border-collapse:collapse;">
<tr bgcolor="#71F9FF">
<th style="text-align:left">Lenda</th>
<th style="text-align:left">Tipi</th>
<th style="text-align:left">Pedagog</th>
<th style="text-align:left">Dita</th>
<th style="text-align:left">Klasa</th>
<th style="text-align:left">Ora</th>
<th style="text-align:left">Viti</th>
<th style="text-align:left">Paraleli</th>
</tr>
<xsl:for-each select="Orare/Orar">
<tr>
<xsl:if test="Viti = $Viti and Paraleli = $Paraleli">
<td><xsl:value-of select="Lenda"/></td>
<td><xsl:value-of select="Tipi"/></td>
<td><xsl:value-of select="Pedagog"/></td>
<td><xsl:value-of select="Dita"/></td>
<td><xsl:value-of select="Klasa"/></td>
<td><xsl:value-of select="Ora"/></td>
<td><xsl:value-of select="Viti"/></td>
<td><xsl:value-of select="Paraleli"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
这是xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='xsltorari.xsl'?>
<Orare>
<Orar>
<Dega>Bachelor në "Teknologji Informacioni dhe komunikimi"</Dega>
<Viti>2</Viti>
<Paraleli>B1</Paraleli>
<Lenda>Grafe dhe alogoritme</Lenda>
<Tipi>seminar</Tipi>
<Pedagog>N/A</Pedagog>
<Dita>E Martë</Dita>
<Klasa>Salla I1 (200 C)</Klasa>
<Ora>17:00-18:00</Ora>
</Orar>
<Orar>
<Dega>Bachelor në "Teknologji Informacioni dhe komunikimi"</Dega>
<Viti>3</Viti>
<Paraleli>A</Paraleli>
<Lenda>Administrimi dhe siguria e sistemeve</Lenda>
<Tipi>leksion</Tipi>
<Pedagog>N/A</Pedagog>
<Dita>E Hënë</Dita>
<Klasa>KlasaD3</Klasa>
<Ora>13:00-14:00</Ora>
</Orar>
我不知道为什么这段代码不起作用。请任何人帮助我。 我想根据viti from xml等于$Viti from select时的条件显示xml文件。请帮帮我。
答:
0赞
Michael Kay
3/30/2020
#1
获取此元素的最简单方法是//*[@id='viti']
评论
0赞
Emanuel
3/31/2020
我按照你说的做了,并将 select 中的值放入 xslt 中的全局变量。现在,当我将变量的值获取到 xsl:if 时,输出什么也没显示。为什么会这样,你能帮帮我吗?如果你愿意,我可以在这里粘贴所有xslt文件。注意:我是这样放置选择值的:<xsl:variable name=“Viti” select=“//*[@id='viti']” />这是正确的方法吗?
0赞
Emanuel
3/31/2020
我将把所有xslt文件和xml文件的一部分
0赞
Michael Kay
3/31/2020
您的问题现在包括一个 XHTML 文件和一个 XML 文件,以及一个有时似乎在读取 XHTML,有时似乎在读取 XML 的 XSLT 样式表。一个样式表很有可能有两个不同的源文档,但你需要区分它们......
0赞
Emanuel
3/31/2020
我知道我要求太多了,但我怎么能区分它们呢?请帮帮我
0赞
Michael Kay
3/31/2020
对不起,这不是学习编程语言的方法。我太忙了,没时间给你一个个人教程——如果你愿意阅读它,有很多信息可用。如果你遇到困难,可以问一个具体的问题,但要开始,你需要做一些阅读。
评论
Viti = $Viti
这意味着您将 @id=“viti” 的内容与相对于当前节点命名的元素的内容进行比较,但在 XSLT 中,当前节点没有名为Viti
/
Viti