Нужен XSLT-селектор для xhtml: ссылка - PullRequest
0 голосов
/ 02 января 2019

У меня есть следующий XML.Я сам добавил xhtml:link.

<url>
    <loc>https://sitename/choix-entrepreneur/12-questions-a-poser-a-votre-entrepreneur/</loc>
    <lastmod>2017-09-01T21:06:07+05:00</lastmod>
    <image:image>
        <image:loc>https://sitename/wp-content/uploads/2017/09/questions-aux-entrepreneurs-non-verifies-par-reno-assistance-1.jpg</image:loc>
        <image:title><!--[CDATA[questions-aux-entrepreneurs-non-verifies-par-reno-assistance]]--></image:title>
        <image:caption><!--[CDATA[questions-aux-entrepreneurs-non-verifies-par-reno-assistance]]--></image:caption>
    </image:image>
    <image:image>
        <image:loc>http://sitename/wp-content/uploads/2014/11/360verification_fr.png</image:loc>
        <image:caption><!--[CDATA[Rapport de vérification à 360° dans l'écran d'un ordinateur]]--></image:caption>
    </image:image>
    <image:image>
        <image:loc>http://sitename/wp-content/uploads/2017/08/calendrier-entrepreneur.jpg</image:loc>
        <image:caption><!--[CDATA[Agenda d'un entrepreneur en construction ou rénovation]]--></image:caption>
    </image:image>
    <image:image>
        <image:loc>http://sitename/wp-content/uploads/2017/08/famille-deplace-sofa-avant-renovations.jpg</image:loc>
        <image:caption><!--[CDATA[Couple déménageant un sofa]]--></image:caption>
    </image:image>
    <image:image>
        <image:loc>http://sitename/wp-content/uploads/2017/08/homme-regardant-telephone.jpg</image:loc>
        <image:caption><!--[CDATA[Homme regardant son téléphone intelligent]]--></image:caption>
    </image:image>
    <image:image>
        <image:loc>http://sitename/wp-content/uploads/2017/08/conteneur-a-dechet-construction-blogue.jpg</image:loc>
        <image:caption><!--[CDATA[Conteneur à déchet de construction]]--></image:caption>
    </image:image>
        <xhtml:link rel="alternate" hreflang="en" href="https://sitename/en/?p=102151"></xhtml:link>

Теперь для этого XML мы обрабатываем его в XSLT.Но я не могу обработать xhtml:link в HTML.Я не знаю, как мне выбрать это.У меня есть следующий код для этого.Помощь будет высоко ценится ..

<td>
  <xsl:variable name="hrefLANG">
    <xsl:value-of select="sitemap:[@rel='alternate']/@href"/>
  </xsl:variable>
  <a href="{$hrefLANG}">
    <xsl:value-of select="sitemap:[@rel='alternate']/@href"/>
  </a>
</td>

1 Ответ

0 голосов
/ 02 января 2019

Есть два подхода:

  1. Вы можете определить пространство имен XHTML http://www.w3.org/1999/xhtml в вашем XSLT на вашем <xsl:stylesheet ... элементе с

    xmlns:xhtml="http://www.w3.org/1999/xhtml">
    

    и затем получить к нему доступ

    <xsl:variable name="hrefLANG">
        <xsl:value-of select="//xhtml:link[@rel='alternate']/@href"/>
    </xsl:variable>
    <xsl:element name="a">
        <xsl:attribute name="href">
            <xsl:value-of select="$hrefLANG"/>
        </xsl:attribute>
    </xsl:element>
    

    Элемент построен с xsl:element, чтобы избавиться от пространства имен в выводе

  2. Вы можете игнорировать пространство имен - которое является менее точным, но также может работать

    <xsl:variable name="hrefLANG">
        <xsl:value-of select="//*[local-name()='link'][@rel='alternate']/@href"/>
    </xsl:variable>
    <xsl:element name="a">
        <xsl:attribute name="href">
            <xsl:value-of select="$hrefLANG"/>
        </xsl:attribute>
    </xsl:element>
    

Выход в обоих случаях

<a href="https://sitename.com/en/?p=102151"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...