2014-06-05 38 views
1

拥有科隆这工作得很好XSL创建元件,它在名称

<xsl:element name="title"> 
    <xsl:value-of select="@title"/> 
</xsl:element> 

然而,这并不

<xsl:element name="image:title"> 
    <xsl:value-of select="@title"/> 
</xsl:element> 

可以请别人指教?当我说它不起作用时,页面会中断。不幸的是,由于系统的性质,我看不到一个错误

页面的顶部如下

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:udf="http://www.virtualfestivals.com/udf"> 
<xsl:output method="html" omit-xml-declaration="no" /> 

回答

1

你所得到的错误可能是沿着Undeclared namespace prefix {image}线。元素名称的“image”部分实际上是一个“名称空间前缀”,就像所有xslt元素前缀为“xsl:”一样。

要解决这个问题,你需要在你的XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:image="my:image" 
    xmlns:udf="http://www.virtualfestivals.com/udf"> 

当然,什么URI是你的“形象”的地方添加声明,为“形象”前缀取决于你需要什么首先添加前缀。 (编辑:按照您的评论正如,你需要将其设置为http://www.google.com/schemas/sitemap-image/1.1

注意,你实际上并不需要使用的xsl:元素这里。如果该元素的名称是静态的,只写出来的元素,像这样......

<image:title> 
    <xsl:value-of select="@title"/> 
</image:title> 

http://www.xml.com/pub/a/2001/04/04/trxml/例如阅读上的命名空间。

+0

我正在尝试创建Google图片站点地图 - https://support.google.com/webmasters/answer/178636?hl=zh_CN好的谢谢,会有一位屠夫 – pee2pee