У меня есть документ xml, скажем 300 записей. Я просматриваю каждую запись и, если выполняются определенные критерии, я записываю данные в текстовый файл с линией перевода после каждой записи , У меня есть ожидаемая работа, за исключением того факта, что после печати последней записи добавляется пробел, и это приводит к ошибке в системе, получающей файл. Я не могу использовать позицию, поскольку последняя запись в моем xml не всегда соответствует критериям. Любые мысли о том, как включить перевод строки для каждой записи, за исключением последнего совпадения?XSL-печать строки, но оставьте последний разрыв строки
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Jones</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
</Group>
</Worker>
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Smith</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
</Group>
</Worker>
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Smith</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
</Group>
</Worker>
XSLT
<xsl:strip-space elements="Worker_Sync"/>
<xsl:template match="Worker_Sync">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Worker">
<xsl:for-each select="Group[Field[@name = 'LastName'] = 'Smith']">
<xsl:value-of select="upper-case(Field[@name = 'LastName'])"/>
<xsl:value-of select="position()"/>, last
<xsl:value-of select="last()"/><br/>
</xsl:for-each>
</xsl:template>
NEW XML
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Jones</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
<Field name="Fulltime">False</Field>
</Group>
</Worker>
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Smith</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
<Field name="Fulltime">False</Field>
</Group>
</Worker>
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Smith</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
<Field name="Fulltime">False</Field>
</Group>
</Worker>
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Jones</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
<Field name="Fulltime">True</Field>
</Group>
</Worker>
<Worker>
- <Group name="Employee Changes">
<Field name="LastName">Jones</Field>
<Field name="OriginalHireDt">03211977</Field>
<Field name="ParticipationDt">05011977</Field>
<Field name="Fulltime">False</Field>
</Group>
</Worker>
Ожидаемый результат Смит (перевод строки) Смит (перевод строки) Джонс - Матч (без перевода строки)
Так что я хочу, чтобы выбрать кого-нибудь с фамилией Смит и написать свою фамилию только и кто-нибудь с Fulltime = true и напишет их фамилию и слово Fulltime ... Я думал, что смогу решить вторую часть, как только у меня будет первая часть, но это было не так.
XSL не выводит ничего не сказать ему, чтобы вывести. Вы не предоставили нам достаточно информации, чтобы дать вам конкретный совет, но ответ заключается в том, чтобы переписать логику стилей, чтобы она не делала этого. Или исправьте другое приложение, чтобы он имел интеллект, чтобы игнорировать эту строку. Если вы хотите, чтобы мы сказали что-то еще, вам нужно дать нам что-то конкретное для работы; mindreading недоступен как бесплатный сервис. – keshlam
Добро пожаловать в StackOverflow. Пожалуйста, добавьте свой вопрос в свой XML-код ввода, ваш XSLT-код, ожидаемый результат XML и тот, который вы действительно получите. –
Извините за недостаток информации. Я понимаю, что xsl не выводит ничего, что я не могу сказать. Внутри оператора if я пишу необходимые данные, а также строку для каждой записи, которая соответствует критериям. Моя проблема заключается в том, что когда последняя запись сопоставляется, строка-строка записывается и остается в файле. Я просто искал рекомендации о том, как переписать таблицу стилей, чтобы включить перевод строки после всех записей, но последний, который соответствует. Изменение нисходящей системы не является вариантом. Заранее благодарим за любую помощь, которую вы можете предоставить. – user3266089