在使用XSLT处理RDF文档时忽略RDF文档中的多个XML标头

时间:2016-02-04 23:05:37

标签: xml xslt rdf

我有一个带有多个RDF记录的RDF文档(总共约30000条记录)。文件创建者可能错误地在每条记录之前添加了XML标头。它看起来像这样:

<?xml version="1.0" ?>
<rdf:RDF>...</rdf:RDF>
<?xml version="1.0" ?>
<rdf:RDF>...</rdf:RDF>
<?xml version="1.0" ?>
<rdf:RDF>...</rdf:RDF>

我已经开发了一个XSLT crosswalk来将这个文档转换成不同的XML格式,但由于多个头文件它不起作用:

parser error : XML declaration allowed only at the start of the document

我的测试人行横道看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"   
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:oai="http://www.openarchives.org/OAI/2.0/"  
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rss="http://my.netscape.com/rdf/simple/0.9/"
  xmlns="http://ands.org.au/standards/rif-cs/registryObjects"
  exclude-result-prefixes="xs xsi xsl oai rdf rss">

  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

  <OAI-PMH 
    xmlns="http://www.openarchives.org/OAI/2.0/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">

    <xsl:template match="/">
      <xsl:apply-templates select="rdf:RDF/rss:Researcher" />
    </xsl:template>

    <xsl:template match="rdf:RDF/rss:Researcher">
      <oai:Researcher>
        <xsl:value-of select="rss:title" />
      </oai:Researcher>
    </xsl:template>

  </OAI-PMH>
</xsl:stylesheet>

有可能以某种方式忽略这些标题吗?我使用xsltproc来应用人行横道。

0 个答案:

没有答案