Как совместить дваусловия в xslt, чтобы проверить, существуют ли оба узла одновременно? - PullRequest
0 голосов
/ 05 марта 2019
  <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>
...