Javascript 使用XML和XPath构建简单的数据库搜索网站

Javascript 使用XML和XPath构建简单的数据库搜索网站,javascript,xml,database,xslt,xpath,Javascript,Xml,Database,Xslt,Xpath,我需要为大学做一个XML项目,我已经构建了一个包含大量汽车及其规格的XML文件。我最初的想法是最终用XSLT和XPath创建一个汽车搜索网站。用户给出一个输入(例如最小200马力、敞篷车、4个座位等),然后将该输入转换为一个XPath表达式,用于查找这些汽车。甚至只有使用XML/XSLT/XPath才能做到这一点吗?这一切都发生在客户端,我非常确定我至少需要一些JavaScript(我甚至需要XSLT吗?)。有一种简单的方法可以做到这一点吗?如果您的源代码需要是XML,并且您了解Xslt/Xpa

我需要为大学做一个XML项目,我已经构建了一个包含大量汽车及其规格的XML文件。我最初的想法是最终用XSLT和XPath创建一个汽车搜索网站。用户给出一个输入(例如最小200马力、敞篷车、4个座位等),然后将该输入转换为一个XPath表达式,用于查找这些汽车。甚至只有使用XML/XSLT/XPath才能做到这一点吗?这一切都发生在客户端,我非常确定我至少需要一些JavaScript(我甚至需要XSLT吗?)。有一种简单的方法可以做到这一点吗?

如果您的源代码需要是XML,并且您了解Xslt/Xpath的原理,那么它非常适合转换XML。 例如,用于生成搜索表单或显示搜索结果。 对于搜索,您也可以使用Xslt,但像这样的引擎可能更适合

也就是说,如果您确实需要使用xslt进行搜索,并且假设您在xslt中只定义了两个参数: xslt 1.0可以如下所示:

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

<xsl:param name="searchName" />
<xsl:param name="searchPhrase"/>

<xsl:template match="*">
    <xsl:choose>
        <xsl:when test="name()=$searchName and contains(text(),$searchPhrase)" >
            <!-- Do something with the result that matches both the element-name and the search-phrase of only the current textnodes-->
    
        </xsl:when>
        <xsl:when test="contains(text(),$searchPhrase)" >
            <!-- Do something with the result that matches only the search-phrase-->
    
        </xsl:when>
        <xsl:otherwise>
            <xsl:apply-templates/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>


当然可以使用XSLT和XPath来完成大部分工作,如果XML的大小小于1Mb,它的性能可能会非常好。如果您想避免编写任何Javascript,可以使用Saxon JS[免责声明:我公司的产品]。谢谢。如何使用Xslt进行搜索?我不知道如何将用户输入转换为xpath表达式