Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / проблема с namespace при xslt / 3 сообщений из 3, страница 1 из 1
22.03.2005, 17:42
    #32974380
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с namespace при xslt
имею xml с namespace-ами. Средт прочих - <text:section>

Я хочу все <text:section> отфильтровать. Использую
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
    <xsl:template match="/">
        <root>
            <xsl:apply-templates select="//text:section"/>
        </root>
    </xsl:template>
    <xsl:template match="text:section">
        <comment>
            <xsl:apply-templates/>
        </comment>
    </xsl:template>
</xsl:stylesheet>

Но фильтр ничего не ловит (результат - <root ... />) - почему? Если я таг и в xml и xsl заменяю на что-то без префикса (например просто section) то всё фурычит. код трансформации:




Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            File stylesheet = new File(style);
            File datafile = new File(data);
            DocumentBuilder builder = factory.newDocumentBuilder();
            document = builder.parse(datafile);
            TransformerFactory tFactory = TransformerFactory.newInstance();

            StreamSource stylesource = new StreamSource(stylesheet);                 //
            Transformer transformer = tFactory.newTransformer(stylesource);         //ads styling information to the transformation
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");            //sets the encoding declared in xml-file
            if (sys != null) {
                // transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, sys); //sets the system dtd
                // transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, pub);  //sets the public dtd
            }
            DOMSource source = new DOMSource(document);
            File fout = new File(result);                       //creates output file
            StreamResult result1 = new StreamResult(new PrintWriter(fout, "UTF-8"));   //ensures that file is writen in a certain encoding (should match the encoding declared earlier)
            transformer.transform(source, result1);
...
Рейтинг: 0 / 0
23.03.2005, 12:12
    #32975791
maddcast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с namespace при xslt
Потому что двоеточием отделяется имя преобразователя, который используется.
...
Рейтинг: 0 / 0
23.03.2005, 14:05
    #32976174
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с namespace при xslt
что такое "преобразователь который используется" ? и как трансформировать таги с namespace префиксом?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / проблема с namespace при xslt / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]