2015-11-04 5 views
0

У меня есть преобразование XSL со следующим требованием: Зеркально точно такой же XML, исключая элемент DocumentList.XSL exclude not working

Следующий мой код. Я получил это решение от: xslt match all nodes except a specific one

Моего кода:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="2.0"> 
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> 

<xsl:template match="@*|node()[not(self::DocumentList)]" name="identity"> 
<xsl:copy> 
<xsl:apply-templates select="@*|node()"/> 
</xsl:copy> 
</xsl:template> 

<!-- overwrite the default template --> 
<xsl:template match="DocumentList"> 
</xsl:template> 

</xsl:stylesheet> 

Когда я бег моего преобразования, отображается то же XML со всеми элементами. Поэтому мой вопрос заключается в том, нужно ли мне указывать путь в матче = «Что не хватает ей?

У моего исходного XML есть другие пространства имен, которые я декларировал в элементе stylesheet, но для конфиденциальности здесь не воспроизводятся. ..

+1

Только pos ting код стилей не позволяет нам воспроизвести проблему, поэтому вам нужно показать минимальные, но полные образцы XML, XSLT, вывести и вывести данные, которые вы хотите, чтобы мы могли сначала воспроизвести, а затем устранить проблему. Если ваши реальные данные не могут быть показаны, то создайте некоторые, но XML и XSLT должны совпадать, когда дело доходит до имен элементов и пространств имен. –

+1

Эта проблема, скорее всего, связана с пространствами имен, которые вы должны объявить в корне вашей таблицы стилей и использовать в 'match =" [...] "'. Также возможно использовать объявление 'xpath-default-namespace =" [...] "'. – potame

+0

Например, http://xsltransform.net/3NJ38YS имеет вход с элементом 'DocumentList' и минимальным XSLT для его удаления и работает отлично. –

ответ

0

Извинения - это был вопрос namspace я псевдонимы моего пространства имен по умолчанию, и она работала т.е. вместо Xmlns = «URL пространства имен по умолчанию» я использовал Xmlns: х = «пространство имен по умолчанию URL»

Спасибо , Ahmed