如何在xslt中合并两个<xsl:if test =“”>条件,以检查两个节点是否同时存在?

时间:2019-03-05 10:16:13

标签: xml xslt xslt-1.0

  <xsl:if test="string(oai:record/oai:metadata/easydb:objects/easydb:objekttyp/easydb:_nested__objekttyp__contributor/easydb:objekttyp__contributor/easydb:person/easydb:person_urheber/easydb:custom[@name=&apos;orcid&apos;]/easydb:string[@name=&apos;url&apos;])!=''">
            <xsl:if test="string(oai:record/oai:metadata/easydb:objects/easydb:objekttyp/easydb:_nested__objekttyp__contributor/easydb:objekttyp__contributor/easydb:person/easydb:person_urheber/easydb:custom[@name=&apos;gnd&apos;]/easydb:string[@name=&apos;conceptURI&apos;])!=''">                                               
            <xsl:for-each select="/oai:record/oai:metadata/easydb:objects/easydb:objekttyp/easydb:_nested__objekttyp__contributor/easydb:objekttyp__contributor">
              <dc:contributor>
                <xsl:value-of select="concat(easydb:person/easydb:person_urheber/easydb:name[@type=&apos;text_oneline&apos;] ,&apos;, &apos;, &apos;ORCID: &apos;, easydb:person/easydb:person_urheber/easydb:custom[@name=&apos;orcid&apos;]/easydb:string[@name=&apos;url&apos;] ,&apos;, &apos;, &apos;GND: &apos;, easydb:person/easydb:person_urheber/easydb:custom[@name=&apos;gnd&apos;]/easydb:string[@name=&apos;conceptURI&apos;] ,&apos;, &apos;,&apos;(&apos;,easydb:rolle/easydb:person_rolle/easydb:name[@type=&apos;text_l10n_oneline&apos;]/easydb:de-DE,&apos;)&apos;)" />
              </dc:contributor> 
            </xsl:for-each>
          </xsl:if>
          </xsl:if>

如果两个字符串都存在,那么我想做一个条件,然后连接以下部分。检查两个节点是否同时存在就足够了。问题是两个如果测试条件不起作用。是否应将它们合并为一种条件?

应检查是否存在<easydb:string name="url">orcid.org/0000-8628</easydb:string>
我的原始XML:

<record xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:easydb="https://schema.de/EAB/1.0/objects/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <header>
                <identifier>oai:b5-45c0-8ad4-8f5c3964bcdb</identifier>
                <datestamp>2018-11-14T09:50:51Z</datestamp>
                <setSpec>objecttype_pool:objekttyp:pool:2</setSpec>
                <setSpec>pool:1</setSpec>
                <setSpec>tagfilter:cc</setSpec>
                <setSpec>objecttype:objekttyp</setSpec>
            </header>
            <metadata>
                <easydb:objects base-schema="207" instance="lar" timestamp="2019-03-01T18:24:30+01:00" user-schema="227" uuid="334655-8c3d-b71241bbc99b">


                    <easydb:objekttyp>

                            <easydb:person>

                                <easydb:person_urheber>
                  <easydb:_version>2</easydb:_version>


                                    <easydb:_id>2</easydb:_id>


                                    <easydb:_system_object_id>413</easydb:_system_object_id>


                                    <easydb:_standard>


                                        <easydb:de-DE>Man</easydb:de-DE>


                                        <easydb:en-US>asian</easydb:en-US>


                                        <easydb:und>Minian</easydb:und>


                                    </easydb:_standard>


                                    <easydb:name type="text_oneline">Man</easydb:name>


                                    <easydb:custom name="orcid" type="custom:base.custom-data-type-link.link">


                                        <easydb:string name="url">orcid.org/0000-8628</easydb:string>


                                        <easydb:string name="tld">org</easydb:string>


                                        <easydb:string name="hostname">orcid.org</easydb:string>


                                        <easydb:object name="_fulltext">


                                            <easydb:string name="string">orcid.org/00628</easydb:string>


                                            <easydb:object name="l10ntext">


                                                <easydb:string name="de_DE"/>


                                                <easydb:string name="en_US"/>


                                            </easydb:object>


                                        </easydb:object>


                                        <easydb:object name="text">


                                            <easydb:string name="de_DE"/>


                                            <easydb:string name="en_US"/>


                                        </easydb:object>


                                    </easydb:custom>


                                </easydb:person_urheber>


                            </easydb:person>


                            <easydb:rolle>


                                <easydb:person_rolle>


                                    <easydb:_version>4</easydb:_version>


                                    <easydb:_id>14</easydb:_id>


                                    <easydb:_system_object_id>579</easydb:_system_object_id>


                                    <easydb:_standard>


                                        <easydb:de-DE>ProjectBeteiligte</easydb:de-DE>


                                        <easydb:en-US>ProjectMember</easydb:en-US>


                                        <easydb:und>ProjectMember</easydb:und>


                                    </easydb:_standard>


                                    <easydb:name type="text_l10n_oneline">


                                        <easydb:de-DE>ProjectBeteiligte</easydb:de-DE>


                                        <easydb:en-US>ProjectMember</easydb:en-US>


                                        <easydb:und>ProjectMember</easydb:und>


                                    </easydb:name>


                                </easydb:person_rolle>


                            </easydb:rolle>


                        </easydb:objekttyp__contributor>



                    </easydb:_nested__objekttyp__contributor>

            </easydb:objects>
        </metadata>
    </record>

0 个答案:

没有答案