首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用xsl搜索

使用xsl搜索
EN

Stack Overflow用户
提问于 2011-04-01 08:05:08
回答 1查看 100关注 0票数 0

Helo,我希望在xsl中执行一个搜索函数,以便在xml文件中找到关键字。我使用了键函数,但它只找到一个指定的词完全。例如,我需要输入单词"com“,并希望它找到包含"com.infopro”或任何包含此字符串的单词。

XML

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE dependencies SYSTEM "http://depfind.sourceforge.net/dtd/dependencies.dtd">

<dependencies>
    <package confirmed="yes">
        <name>com.infopro.Dependency</name>
        <class confirmed="yes">
            <name>com.infopro.Dependency.A</name>
            <outbound type="class" confirmed="no">java.lang.Object</outbound>
            <outbound type="class" confirmed="no">javax.ejb.Stateless</outbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.B()</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.a</inbound>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.A()</name>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.A.b</outbound>
                <outbound type="class" confirmed="yes">com.infopro.Dependency.B</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.B.B()</outbound>
                <outbound type="feature" confirmed="no">java.lang.Object.Object()</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.B()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.b</name>
                <outbound type="class" confirmed="yes">com.infopro.Dependency.B</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.A()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.check(java.lang.String, java.lang.String)</name>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.A.stat</outbound>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.doStatus()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.doStatus()</name>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.A.check(java.lang.String, java.lang.String)</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.A.name</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.A.user_id</outbound>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.name</name>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.doStatus()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.stat</name>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.check(java.lang.String, java.lang.String)</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.A.user_id</name>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.doStatus()</inbound>
            </feature>
        </class>
        <class confirmed="yes">
            <name>com.infopro.Dependency.B</name>
            <outbound type="class" confirmed="yes">com.infopro.Dependency.C</outbound>
            <outbound type="class" confirmed="no">java.lang.Object</outbound>
            <outbound type="class" confirmed="no">javax.ejb.Stateless</outbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.A()</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.b</inbound>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.B()</name>
                <outbound type="class" confirmed="yes">com.infopro.Dependency.A</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.A.A()</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.B.a</outbound>
                <outbound type="feature" confirmed="no">java.lang.Object.Object()</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.A()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.a</name>
                <outbound type="class" confirmed="yes">com.infopro.Dependency.A</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.B()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.check(java.lang.String, java.lang.String)</name>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.B.stat</outbound>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.doStatus()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.doStatus()</name>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.B.check(java.lang.String, java.lang.String)</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.B.name</outbound>
                <outbound type="feature" confirmed="yes">com.infopro.Dependency.B.user_id</outbound>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.name</name>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.doStatus()</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.stat</name>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.check(java.lang.String, java.lang.String)</inbound>
            </feature>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.B.user_id</name>
                <outbound type="class" confirmed="no">java.lang.String</outbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.doStatus()</inbound>
            </feature>
        </class>
        <class confirmed="yes">
            <name>com.infopro.Dependency.C</name>
            <outbound type="class" confirmed="no">java.lang.Object</outbound>
            <outbound type="class" confirmed="no">javax.ejb.Remote</outbound>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.B</inbound>
            <feature confirmed="yes">
                <name>com.infopro.Dependency.C.doStatus()</name>
            </feature>
        </class>
    </package>
    <package confirmed="no">
        <name>java.lang</name>
        <class confirmed="no">
            <name>java.lang.Object</name>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.A</inbound>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.B</inbound>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.C</inbound>
            <feature confirmed="no">
                <name>java.lang.Object.Object()</name>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.A()</inbound>
                <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.B()</inbound>
            </feature>
        </class>
        <class confirmed="no">
            <name>java.lang.String</name>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.check(java.lang.String, java.lang.String)</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.doStatus()</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.name</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.stat</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.A.user_id</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.check(java.lang.String, java.lang.String)</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.doStatus()</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.name</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.stat</inbound>
            <inbound type="feature" confirmed="yes">com.infopro.Dependency.B.user_id</inbound>
        </class>
    </package>
    <package confirmed="no">
        <name>javax.ejb</name>
        <class confirmed="no">
            <name>javax.ejb.Remote</name>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.C</inbound>
        </class>
        <class confirmed="no">
            <name>javax.ejb.Stateless</name>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.A</inbound>
            <inbound type="class" confirmed="yes">com.infopro.Dependency.B</inbound>
        </class>
    </package>
</dependencies>

XSL

代码语言:javascript
运行
复制
<xsl:output method="text"/>
<xsl:strip-space elements="*"/> 
代码语言:javascript
运行
复制
<xsl:template match="class">
    <xsl:text></xsl:text><xsl:value-of select="name"/><xsl:if test="@confirmed='no'"> *</xsl:if><xsl:text> </xsl:text>
    <xsl:for-each select="key('cdlist','com')">
        <xsl:text disable-output-escaping="yes">                                                                             , </xsl:text><xsl:value-of select="."/><xsl:if test="@confirmed='no'"> *</xsl:if><xsl:text>
代码语言:javascript
运行
复制
                                                                                                        ,  \*               

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-01 09:54:35

XPath包含()函数总是可以使用的。

代码语言:javascript
运行
复制
<xsl:apply-templates select="class[contains(.//text(), 'com')]">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5510641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档