xml - 什么是 strip 错误?

标签 xml xslt rdf last.fm

我正在尝试使用 xslt 将 last.fm xml 数据转换为 rdf 并收到此错误:错误 [http-8080-1] (RDFDefaultErrorHandler.java:40) - (第 3 行第 24 列): {E202}需要 XML 开始或结束元素。不允许字符串数据“Joseph Arthur”。也许是 strip 错误。

任何人都可以向我解释什么是 strip 错误,或者一般来说我做错了什么。

xslt 代码在这里:

    <xsl:for-each select="/lfm/artists/artist">
        <lfm:name><xsl:value-of select="name"/></lfm:name>
    </xsl:for-each>

这是 xml 位置: http://ws.audioscrobbler.com/2.0/?method=library.getartists&api_key=b25b959554ed76058ac220b7b2e0a026&user=joanofarctan

谢谢。

最佳答案

查看由此生成的完整 xml,或者至少查看完整的 xslt 和输入 xml(其中没有提及“Joseph Arthur”)确实很有帮助。

所以抛开所有这些,您正在生成的 rdf/xml 破坏了一个称为“ strip 化”的重要功能。丹·布里克利 (Dan Brickley) 写了一个 useful explanation ,但这里有一个非常简短的总结:当与 rdf/xml 一起呈现时

<a>
  <b>
    <c>
      <d>

你知道奇数标签(a,c)对应于rdf图中的节点,而偶数标签(c,d)代表边或属性。语法“stripes”节点和属性。

此外,如果一个元素包含文本,它必须是一个属性(节点元素只包含其他元素,或者不包含任何元素)。

因此解析器认为它位于一个节点,因此期望更多元素,找到文本,并建议您在错误的位置使用属性。我的猜测是你的 rdf 看起来像:

<rdf:RDF ...>
  <lfm:name>Joseph Arthur</lfm:name>
  ....

您说过某个属性名称的值为“Joseph Arthur”,但您没有包含主题节点,因此我们不知道该名称是什么。

关于xml - 什么是 strip 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188220/

相关文章:

python - 在解析大型 XML 文件时,我应该如何处理 Python 的 lxml 中的 XMLSyntaxError?

xml - 复杂 XSD 比较

html - 如何查看http ://in xml formate with xslt

xml - 当我包含 xmlns ="http://www.sitemaps.org/schemas/sitemap/0.9"时,XSLT 不起作用

rdf - 我如何在 RDF 中表示一个 5 元组?

python - 快速解析使用类似 xml 标签的字符串

java - 使用多个 ivy :retrieve patterns in my build. xml 与多个工件模式关联

html - 在现有 HTML/CSS 模板中嵌入 XML 数据

sparql - 选择所有三元组,如果相关则指示命名图

testing - 如何解决 SPARQL 警告?