Правильно пройти XML с XSLT - PullRequest
       3

Правильно пройти XML с XSLT

0 голосов
/ 22 сентября 2019

Первый проект с XSLT, так что я все еще выясняю его, но здесь я пытаюсь убедиться, что смотрю только на Legal Name в этом XML:

        <ws:Personal>
            <ws:Name_Data>
                <ws:Name_Type>Legal</ws:Name_Type>
                <ws:First_Name>Joana</ws:First_Name>
                <ws:Last_Name>Doe</ws:Last_Name>
            </ws:Name_Data>
            <ws:Name_Data>
                <ws:Name_Type>Preferred</ws:Name_Type>
                <ws:First_Name>Gabby</ws:First_Name>
                <ws:Last_Name>Doe</ws:Last_Name>
            </ws:Name_Data>
        </ws:Personal>

В моем XSL я попробовал это, которое кажетсяна работу, но я думаю, что есть лучший способ сделать это:

  <xsl:template match="/">
    <xsl:if test="ws:Name_Type='Legal'">
    ...do work
    </xsl:if>
  </xsl:template>

Итак, как бы я поступил так, если бы мой желаемый вывод «Joana»:

<xsl:value-of select="ws:Personal/ws:Name_Data/ws:First_Name"/>

Когда мне нужно тянуть только Name_Type Legal?

1 Ответ

1 голос
/ 22 сентября 2019

Чтобы извлечь только значения элемента ws:First_Name, которые находятся в тех же родительских элементах ws:Name_Data, которые сами имеют дочерний элемент с именем ws:Name_Type со значением "Legal", вы можете использовать предикат в своем выражении, например:

<xsl:value-of select="ws:Personal/ws:Name_Data[ws:Name_Type='Legal']/ws:First_Name" />

Вывод:

Joana

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