Часть XML не показана - PullRequest
0 голосов
/ 03 мая 2018

У меня есть такой XSL-файл. Первая часть файла XML преобразуется и отображается в Internet Explorer без проблем. Но когда я добавляю дополнительный контент в конец документа, он не отображается в Internet Explorer. Последняя часть с тегом <Number> не показана. Я не знаю, в чем проблема.

<?xml version='1.0'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/">
<ClientList>
<xsl:for-each select="ClientList/Client">

<Client>
<IdNumber>
<xsl:value-of select="position()"/>
</IdNumber>

<NameSurname>
<xsl:value-of select="concat(Name, ' ' , Surname)"/>
</NameSurname>

</Client>
</xsl:for-each>
</ClientList>

<Number>
<xsl:value-of select="count(/ClientList/Client/ProductOwner[text()='true'])"/>
</Number>

</xsl:template>
</xsl:stylesheet>

Вот мой входной XML-файл:

<?xml version="1.0" encoding="UTF-8"?>
<ClientList>
    <Client>
        <Name>Jan</Name>
        <Surname>Kowalski</Surname>
        <ProductOwner>true</ProductOwner>
    </Client>
    <Client>
        <Name>Piotr</Name>
        <Surname>Nowak</Surname>
        <ProductOwner>false</ProductOwner>
    </Client>
</ClientList>

1 Ответ

0 голосов
/ 03 мая 2018

Итак, в качестве ответа на ваш запрос в комментариях (как я могу «ввести новый корневой тег, заключающий в себе как« ClientList », так и« Number »).

После попытки XSLT "как есть" выдается ошибка:

Line:   12
Column: 2
Only one top level element is allowed in an XML document.

Как только мы добавим внешний корневой тег, таблица стилей должна быть изменена следующим образом:

...
<xsl:template match="/">
<new-root> <- open new root tag here
<ClientList>
...
</Number>

</new-root> <- and close it there
</xsl:template>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...