2016-08-18 114 views
1

我想通過使用XSLT將XML文件轉換爲另一個XML文件。 這是我的XML(Input.xml中)的部分錯誤:尚未聲明命名空間前綴「og:image」:XSLT

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

這是我使用的標籤OG將我的XSLT的一部分:圖像:

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

我希望我的輸出像這樣(的Output.xml)

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

但是當我跑我的XSLT,我得到這個錯誤。

XPST0081: Namespace prefix 'og' has not been declared 

我可能會錯過一些東西。我之前沒有使用XSLT處理XML,它們之間有冒號。任何幫助,將不勝感激

回答

1

如果你使用一個命名空間前綴路徑表達式或模式類似

select="/extension/og:image" 

,那麼你必須聲明在一些含元素命名空間聲明的前綴,例如

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

其中xxxxxxx與源文檔中使用的名稱空間URI(您未顯示)匹配。請注意,源文檔和樣式表可以使用不同的前綴,唯一重要的是它們綁定到相同的名稱空間URI。

+0

謝謝,邁克爾。 – Rose