XSLT i xmlns

9 września 2007

Mam problem z przestrzeniami nazw w transformacji XSLT, jego brak lub brak prefiksu.

Po części problem opisany tutaj:

Dokładnie to chcę, aby XML:

<iq type="get" id="ab0ea">
    <query xmlns="jabber:iq:roster"/>
</iq>

oraz

<iq xmlns='jabber:client' type="get" id="ab0ea">
    <query xmlns="jabber:iq:roster"/>
</iq>

Był przetwarzany przez ten sam template match XSLT-a:

<xsl:template match="/iq"/>

lub

<xsl:template match="/xmpp:iq"/>

Może ktoś potrafi mi pomóc?
Kombinowałem z różnymi metodami, i nie mogę uzyskać wymaganego rezultatu.

Wiem, że w XSLT 2.0 wystarczyłoby dodanie 1 linijki:

xpath-default-namespace="jabber:client"

ale niestety korzystam z libxslt, a on na razie nie supportuje wersji 2.0.

Podobne notatki:

Może zainteresują Cię również następujące, pododbne notatki:

Komentarze i nawiązania (2)

Kanał RSS komentarzy

  1. Spróbuj dodać do elementu xsl:stylesheet atrybut xmlns:xmpp=”jabber:client”.

  2. Nie rozwiaze to problemu, bo wtedy elementy bez namespace’a nie beda „lapane” przez ten warunek.

Dodaj swój komentarz

Możesz użyć tych tagów XHTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Jeśli chcesz wstawić kilku linijkowy fragment kodu, użyj tagów <pre lang="x"></pre> (gdzie x język kodu np. cpp, perl, html). W ten sposób kod zostanie odpowiednio sformatowany i pokolorowany przez system.

Uwaga!

Na tym blogu działa system cache oraz filtr antyspamowy. Twój komentarz może być widoczny na stronie z pewnym opóźnieniem. Proszę o cierpliwość. Jeśli utraciłeś już wszystkie jej zasoby poinformuj mnie o tym, być może system uznał Cię za spamera ;)