Когда щелкает вывод XML-файла, он должен дать мне больше соответствующей информации из XML - PullRequest
1 голос
/ 18 марта 2011

У меня есть следующий XML, к которому я применил XSLT для отображения всех имен.Теперь мне нужно получить все соответствующие данные, когда я нажимаю на имя (в выводе) .. как мне это сделать?мой вывод, если я нажму на «Siebel», должен быть Sys Admin, Administrator, 0-1, Nva, dga в соответствующих полях, установленных для них.

1 Ответ

0 голосов
/ 18 марта 2011

Это преобразование :

<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>

при применении к предоставленному документу XML (исправлено, чтобы оно было правильно сформировано в пространстве имен):

<SOAP-ENV:Body xmlns:SOAP-ENV="blahblahblah">
    <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>

дает требуемый, правильный результат :

<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>

Объяснение :

  1. Единственные копии шаблоналюбой элемент x:Contact с дочерним элементом x:FirstName, значение которого совпадает со значением, указанным в предоставляемом извне параметре $pFirstName.

  2. Префикс x: необходим для обозначенияна имена, которые находятся в пространстве имен по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...