Модификация таблицы стилей XSLT для получения некоторых тегов, которые пропали после преобразования - PullRequest
0 голосов
/ 04 октября 2011

Я преобразую некоторые RSS-каналы XML с помощью XSLT.В основном я редактирую два типа:

1. <rss><channel>some tags about the RSS<item></item></channel></rss>
2. <feed>some tags about the RSS<entry></entry></feed>

, используя эту таблицу стилей.(Он получает некоторые файлы из файла paths.xml)

<xsl:stylesheet version="1.0" xmlns:f="http://www.w3.org/2005/Atom" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/*">
    <NEWrss>
        <xsl:for-each select="file">
            <xsl:apply-templates 
                select="document(.)/*//channel | document(.)/f:feed/f:entry">
                <xsl:with-param name="file" select="."/>
            </xsl:apply-templates>
        </xsl:for-each>
    </NEWrss>
</xsl:template>

В первом RSS я правильно получаю вывод с тегами между <channel> и первым <item>.Это некоторые теги, которые содержат информацию о блоге, например, заголовок.

Однако на втором эти теги (название блога ... находятся между <feed> и первым <entry>)ушел после трансформации.Теги отображаются правильно.

У меня вопрос, как я могу получить эти теги тоже?

Пример ленты, подобной 2-й структуре, http://feeds.feedburner.com/EFENPRESS-

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

Я думаю, что вы говорите, что не видите текст, предшествующий элементу f: feed.Это потому, что ваш оператор select не включает его - он выбирает только элементы f: feed / f: entry и channel.Может быть, вам стоит попробовать обработать f: feed вместо f: feed / f: entry?или f: feed / node (), который выберет и f: feed / text (), и f: feed () / f: entry.

0 голосов
/ 04 октября 2011

Похоже на проблему с пространством имен.Вы используете префикс пространства имен «f» для доступа к элементам feed и entry, но не очевидно, что эти элементы действительно находятся в этом пространстве имен.(И на самом деле, элемент entry пуст, поэтому при доступе к нему содержимое не будет отображаться)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...