单击XML文件的输出时,它必须从XML中提供更多的相应信息

单击XML文件的输出时,它必须从XML中提供更多的相应信息,xml,xslt,Xml,Xslt,我有以下XML,我应用了XSLT来显示所有的名字。现在,当我单击第一个名称(在输出中)时,我需要检索整个相应的数据。。我该怎么做?如果单击“Siebel”,则在为其设置的相应字段中,我的输出应为Sys Admin、Administrator、0-1、Nva、dga <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/e

我有以下XML,我应用了XSLT来显示所有的名字。现在,当我单击第一个名称(在输出中)时,我需要检索整个相应的数据。。我该怎么做?如果单击“Siebel”,则在为其设置的相应字段中,我的输出应为Sys Admin、Administrator、0-1、Nva、dga

<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
    <rpc:ConQueryByExampleResponse 
        xmlns:rpc="http://siebel.com/asi/">
        <SiebelMessage>
            <ListOfContactInterfaceMobile 
              xmlns="http://www.siebel.com/xml/Contact%20Interface%20Mobile">
                <Contact>
                    <FirstName>Siebel</FirstName>
                    <JobTitle>Sys Admin</JobTitle>
                    <LastName>Administrator</LastName>
                    <PersonUId>0-1</PersonUId>
                    <PersonalContact>Nva</PersonalContact>
                    <PrimaryOrganization>dga</PrimaryOrganization>
                </Contact>
                <Contact>
                    <FirstName>xyz</FirstName>
                    <JobTitle>Sn</JobTitle>
                    <LastName>Admin</LastName>
                    <PersonUId>0-2</PersonUId>
                    <PersonalContact>Nar</PersonalContact>
                    <PrimaryOrganization>adfg</PrimaryOrganization>
                </Contact>
            </ListOfContactInterfaceMobile>
        </SiebelMessage>
    </rpc:ConQueryByExampleResponse>
</SOAP-ENV:Body>

西贝尔
系统管理员
管理员
0-1
Nva
dga
xyz
锡
管理
0-2
纳尔
adfg

这一转变

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:x="http://www.siebel.com/xml/Contact%20Interface%20Mobile">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:param name="pFirstName" select="'xyz'"/>

 <xsl:template match="/">
     <xsl:copy-of select="/*/*/*/*/x:Contact[x:FirstName=$pFirstName]"/>
 </xsl:template>
</xsl:stylesheet>
<Contact xmlns="http://www.siebel.com/xml/Contact%20Interface%20Mobile" xmlns:rpc="http://siebel.com/asi/" xmlns:SOAP-ENV="blahblahblah">
   <FirstName>xyz</FirstName>
   <JobTitle>Sn</JobTitle>
   <LastName>Admin</LastName>
   <PersonUId>0-2</PersonUId>
   <PersonalContact>Nar</PersonalContact>
   <PrimaryOrganization>adfg</PrimaryOrganization>
</Contact>

应用于提供的XML文档时(更正为命名空间格式正确):


西贝尔
系统管理员
管理员
0-1
Nva
dga
xyz
锡
管理
0-2
纳尔
adfg
生成所需的正确结果

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:x="http://www.siebel.com/xml/Contact%20Interface%20Mobile">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:param name="pFirstName" select="'xyz'"/>

 <xsl:template match="/">
     <xsl:copy-of select="/*/*/*/*/x:Contact[x:FirstName=$pFirstName]"/>
 </xsl:template>
</xsl:stylesheet>
<Contact xmlns="http://www.siebel.com/xml/Contact%20Interface%20Mobile" xmlns:rpc="http://siebel.com/asi/" xmlns:SOAP-ENV="blahblahblah">
   <FirstName>xyz</FirstName>
   <JobTitle>Sn</JobTitle>
   <LastName>Admin</LastName>
   <PersonUId>0-2</PersonUId>
   <PersonalContact>Nar</PersonalContact>
   <PrimaryOrganization>adfg</PrimaryOrganization>
</Contact>

xyz
锡
管理
0-2
纳尔
adfg
说明

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:x="http://www.siebel.com/xml/Contact%20Interface%20Mobile">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:param name="pFirstName" select="'xyz'"/>

 <xsl:template match="/">
     <xsl:copy-of select="/*/*/*/*/x:Contact[x:FirstName=$pFirstName]"/>
 </xsl:template>
</xsl:stylesheet>
<Contact xmlns="http://www.siebel.com/xml/Contact%20Interface%20Mobile" xmlns:rpc="http://siebel.com/asi/" xmlns:SOAP-ENV="blahblahblah">
   <FirstName>xyz</FirstName>
   <JobTitle>Sn</JobTitle>
   <LastName>Admin</LastName>
   <PersonUId>0-2</PersonUId>
   <PersonalContact>Nar</PersonalContact>
   <PrimaryOrganization>adfg</PrimaryOrganization>
</Contact>
  • 唯一的模板复制任何
    x:Contact
    元素和
    x:FirstName
    子元素,该子元素的值与外部提供的参数
    $pFirstName
    中提供的值相同

  • x:
    前缀是引用默认命名空间中的名称所必需的


  • 好问题,+1。请参阅我的答案,以获得完整、简短、简单的解决方案和详细的解释。:)你写了“当我点击第一个名字时”。这是EmacScript或CSS的异步行为句柄。我的建议是,既然您已经拥有了所有数据,那么就使用CSS样式表来隐藏/显示额外的数据。