2016-08-18 2 views
1

Ich versuche, eine XML-Datei mithilfe von XSLT in eine andere XML-Datei zu konvertieren. Dies ist der Teil meiner XML (Input.xml)Fehler: Namespacepräfix "og: image" wurde nicht deklariert: XSLT

... 
<extension> 
    <og:image>http://www.example.com/images/logos/logo-example-PNG.png</og:image> 
    <og:type>article</og:type> 
</extension> 
    ....... 
... 

Dies ist der Teil meiner XSLT ist, die ich auf dem Tag og bin mit: Bild:

.... 
<MT> 
<xsl:attribute name="N">og:image</xsl:attribute> 
<xsl:attribute name="V" select="/extension/og:image"/> 
</MT> 
... 

ich meine Ausgabe wollen wie folgt aussehen (Output.xml)

<MT N="og:image" V="http://www.example.com/images/logos/logo-example-PNG.png/> 

Aber wenn ich meine XSLT laufen, erhalte ich diesen Fehler.

XPST0081: Namespace prefix 'og' has not been declared 

Ich könnte etwas fehlen. Ich habe noch nicht mit XSLT mit XML gearbeitet, das Doppelpunkt dazwischen hat. Jede mögliche Hilfe würde

Antwort

1

geschätzt, wenn Sie ein Namespacepräfix in einem Pfadausdruck oder Muster verwenden, wie

select="/extension/og:image" 

dann müssen Sie das Präfix in einem Namespace-Deklaration auf einige enthalten Element erklären, zum Beispiel

<xsl:stylesheet .... 
    xmlns:og="xxxxxxx" 

Dabei entspricht xxxxxxx dem Namespace-URI, der im Quelldokument verwendet wird (das Sie nicht angezeigt haben). Beachten Sie, dass das Quelldokument und das Stylesheet unterschiedliche Präfixe verwenden können. Wichtig ist nur, dass sie an denselben Namespace-URI gebunden sind.

+0

Danke, Michael. – Rose

Verwandte Themen