Вы пытались убедиться, что ваши фотографии обрезаны с одинаковым размером, а затем убедитесь, что ширина и высота каждой фотографии имеют одно и то же установленное статическое значение, например:
200px
Вы рассмотрели предварительную обработку Ваших XML-документов?
Вы могли удалить все пространства имен (знать о возможных столкновениях) и затем обработать его с помощью существующего преобразования XSL.
Такой подход имел бы преимущество, что Вы не должны изменять свой XSLT вообще. Это остается читаемым (* [локальное имя () = 'frob'] выглядит настолько ужасным), и удобный в сопровождении.
Возможно, я не понимаю Вашей проблемы, но у Вас не могло только быть своего соответствия шаблона (шаблонов) и версия пустого пространства имен и namespaced версия элемента? - Как это:
<xsl:template match="ElementName | NS:ElementName" xmlns:NS="your-namespace">
... output ...
</xsl:template>
(Обычно объявление префикса NS было бы помещено в элемент таблицы стилей),
Это - безусловно самая 'чистая' версия мне - у меня есть beeen, использующий, это, чтобы иметь единственную таблицу стилей XSLT обрабатывает все три формата RSS (0.91, 1.0 и 2.0).
После дальнейшей консультации кажется, что просто нет никакого простого способа из этого. XSLT должен быть перепроектирован, чтобы быть агностиком пространства имен или использовать xpath-default-namespace
атрибут на <xsl:stylesheet>
элемент. Если мы хотим сохранить пространство имен входящего документа, но все еще иметь одну работу таблицы стилей с несколькими пространствами имен затем наши шаблоны должны были бы напомнить следующую форму:
<xsl:template match="*[local-name(.)='ElementName']">
<xsl:element name="{local-name(.)}" xmlns="http://yourURIhere">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template/>
и т.д.