首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSXSL错误和几乎没有任何输出

MSXSL错误和几乎没有任何输出
EN

Stack Overflow用户
提问于 2012-12-05 10:15:36
回答 1查看 226关注 0票数 0

我试图通过XSL将一些HTML文件转换成自己的XML格式。

为此目的,我使用HTML清理输入文件,然后用html2xhtml将它们转换为xhtml,然后使用带有msxsl的xsl脚本将xhtml文件转换为我自己的格式。

但是,最后一步失败了,根本没有错误消息(这是语义错误;不是技术错误;-):我的输出文件只包含空标记

在此之前,我遇到了类似的问题,并从html标记中删除了xmlns属性,这使得几乎所有的在线转换器都能正确地处理我的文件。MSXSL现在写入以下错误消息:“不支持在DTD中使用默认命名空间声明属性”。

查找我在这里使用的文件:http://pastie.org/5483087

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-05 10:22:53

这就是使用XSLT1.0和XPath 1.0的常见问题,您输入的XHTML中的元素位于名称空间中,而您的XSLT没有考虑到这一点。你需要把它改成。

代码语言:javascript
复制
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml">
<xsl:template match="/">

  <stellenausschreibung>
    <hochschule><xsl:value-of select="//xhtml:div[@id='contentText']/xhtml:img/@alt" /></hochschule>
    <anbieter><xsl:value-of select="//xhtml:p[@id='ad_employer']" /></anbieter>
    <typ><xsl:value-of select="//xhtml:h1" /></typ>
    <bewerbungsschluss><xsl:value-of select="//xhtml:span[@id='ad_bewerbungsschluss']" /></bewerbungsschluss>
    <erscheinungsdatum><xsl:value-of select="//xhtml:span[@class='job_published_at']" /></erscheinungsdatum>

    <inhalt><xsl:value-of select="//xhtml:p[@id='ad_job']" /></inhalt>
  </stellenausschreibung>

</xsl:template>
</xsl:stylesheet>

当然,样式表中使用的XHTML命名空间的前缀(在我的示例xhtml中)可以自由选择,但是有必要使用前缀,比如XSLT/XPath1.0,例如,//p总是在没有名称空间中选择p元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13720827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档