首页 > 解决方案 > 将 IRI 转换为 Qname - 或从 IRI 创建元素

问题描述

我正在使用 XSLT 将 XML 数据转换为 RDF,并且需要将输入数据中的 IRI 字符串转换为输出中的 XML 元素。这需要我将 IRI 转换为 QName,以便获得有效的 XML 元素名称。我希望找到一个 iri-2-qname xpath 函数,但我不能并以 xsl:choose 结束,并对我的每个前缀声明进行一个测试:

<xsl:template name="getQName">
    <xsl:param name="iri"/>
    <xsl:choose>
      <xsl:when test="starts-with($iri, $NamespaceA-iri)">
        <xsl:value-of select="concat($NamespaceA-prefix, ':', substring-after($iri, $NamespaceA-iri))"/>
      </xsl:when>
      <!-- ... -->

它可以工作,但是不能使用已经在 XSLT 文档中设置的名称空间和前缀声明是很不方便的。

有什么有用的建议吗?

标签: xsltxpath

解决方案


推荐阅读