我正在尝试使用XSLT将XML文件转换为另一个XML文件。 这是我的XML(Input.xml)
的一部分 ...
<extension>
<og:image>http://www.example.com/images/logos/logo-example-PNG.png</og:image>
<og:type>article</og:type>
</extension>
.......
...
这是我在标签og:image:
上使用的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之间有冒号。任何帮助将不胜感激
答案 0 :(得分:2)
如果在路径表达式或模式中使用名称空间前缀,如
select="/extension/og:image"
然后你必须在某个包含元素的名称空间声明中声明前缀,例如
<xsl:stylesheet ....
xmlns:og="xxxxxxx"
其中xxxxxxx
匹配源文档中使用的命名空间URI(您尚未显示)。请注意,源文档和样式表可以使用不同的前缀,唯一重要的是它们绑定到相同的名称空间URI。