Squeak.ru - шаблоны программирования

Мне не нужна запятая после последнего элемента xslt

В моей схеме есть AddressLine1, AddressLine2, AddressLine3 и AddressLine4. Когда адрес добавляется к каждой AddressLine, запятая вставляется для разделения AddressLines. Однако, если только AddressLine1 и AddressLine2 имеют адрес, то после AddressLine2 не должно быть запятой, потому что после нее больше ничего нет. Мой вывод показывает запятую после AddressLine2 (Сидней, Австралия, 123456A), хотя это не должно быть. Выход 472 Case Ave, Apt 2, Saint Paul, MN, 55106; 123 Beautiful Ocean, Сидней, Австралия, 123456A,

Xml-код

<Address InternalAddressID="1618212014" Type="Foreign">
    <Location Word="OTHER">Other</Location>
    <AddressLine1>123 Beautiful Ocean</AddressLine1>
    <AddressLine2>Sydney Australia 123456A</AddressLine2>
    <Foreign>true</Foreign>
</Address>

Xslt-код

<xsl:for-each select="Addresses/Address">
<xsl:for-each select="ancestor::ProtectionOrder/ProtectionOrderParties/ProtectionOrderParty/MNProtectionOrderPartyAdditional/ProtectedAddresses/Address[@InternalAddressID=current()/@InternalAddressID]">
<xsl:if test="AddressLine1">
<xsl:value-of select="AddressLine1"/>
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="AddressLine2">
<xsl:value-of select="AddressLine2"/>
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="AddressLine3">
<xsl:value-of select="AddressLine3"/>
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="AddressLine4">
<xsl:value-of select="AddressLine4"/>
</xsl:if>
<xsl:text>; </xsl:text>
</xsl:for-each>
</xsl:for-each>
27.02.2015

  • Скажите, хотите ли вы решение XSLT 1.0 или XSLT 2.0. 28.02.2015

Ответы:


1

Я бы посоветовал вам изменить свою стратегию на что-то вроде:

<xsl:template match="Address">
    <xsl:apply-templates select="AddressLine1 | AddressLine2 | AddressLine3 | AddressLine4"/>
</xsl:template> 

<xsl:template match="AddressLine1 | AddressLine2 | AddressLine3 | AddressLine4">
    <xsl:value-of select="."/>
    <xsl:if test="position()!=last()">, </xsl:if>
</xsl:template>  

Или, на случай, если вы используете XSLT 2.0:

<xsl:template match="Address">
    <xsl:value-of select="AddressLine1 | AddressLine2 | AddressLine3 | AddressLine4" separator=", "/>
</xsl:template> 
27.02.2015

2

Просто используйте

<xsl:for-each select="AddressLine1 | AddressLine2 | AddressLine3 | AddressLine4">
  <xsl:if test="position() > 1">, </xsl:if>
  <xsl:value-of select="."/>
</xsl:for-each>
27.02.2015
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...