У меня есть простой скрипт XSLT:XSL- простой пример не удается
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/package">
<xsl:copy-of select="*"/>
</xsl:template>
</xsl:stylesheet>
Что при нанесении на следующем примере
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<package
xmlns="http://www.idpf.org/2007/opf"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
version="3.0"
xml:lang="en"
unique-identifier="pub-identifier"
>
<metadata>
<dc:identifier id="pub-identifier">_idm462750791920</dc:identifier>
<meta id="meta-identifier" property="dcterms:identifier">_idm462750791920</meta>
</metadata>
</package>
производит, не результат бы бессмысленно
<?xml version="1.0"?>
_idm462750791920
_idm462750791920
Примечание что я не использую элементы, связанные с пространством имен dc, все работает так, как можно было бы ожидать. Например, если я использую:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<package
xmlns="http://www.idpf.org/2007/opf"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
version="3.0"
xml:lang="en"
unique-identifier="pub-identifier"
>
<metadata>
asdfasdfads
</metadata>
</package>
Так что похоже, что это признание элемент «пакет» и действующий на нем, как я ожидал.
Что мне нужно сделать, чтобы сделать эту работу?
'/ package' ничего не соответствует, потому что пакет находится в пространстве имен по умолчанию. Сделайте быстрый поиск по пространству имен xslt по умолчанию, и вы найдете множество примеров.Кроме того, бессмысленный результат обусловлен встроенными шаблонами xslt. Когда я вернусь к компьютеру, я добавлю ссылку на спецификации. –
Что * * ожидаемый результат здесь? –
@michail - Я ожидаю получить отображение всего текста внутри элемента пакета. –