Ошибка преобразования XSL - префикс пространства имен не определен - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь преобразовать этот XML-файл, используя XSL-преобразование: https://gist.github.com/mleontenko/d83026d2a02bedeb7531881144e345aa

Я использую файл XSL для добавления нового фрагмента XML в существующий код. Файл XSL выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <!-- Identity template, copies everything as is -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- Override for target element -->
  <xsl:template match="gmd:CI_Citation">
    <!-- Copy the element -->
    <xsl:copy>
      <!-- And everything inside it -->
      <xsl:apply-templates select="@* | *"/> 
      <!-- Add new node (or whatever else you wanna do) -->
      <!-- <xsl:element name="newNode"/> -->
      <gmd:identifier>
          <gmd:RS_Identifier>
             <gmd:code>
                <gco:CharacterString>0105</gco:CharacterString>
             </gmd:code>
             <gmd:codeSpace>
                <gco:CharacterString>hr:nipp:hr</gco:CharacterString>
             </gmd:codeSpace>
             <gmd:version>
                <gco:CharacterString>1.0</gco:CharacterString>
             </gmd:version>
          </gmd:RS_Identifier>
       </gmd:identifier>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

В браузере появляется следующая ошибка (префикс пространства имен [префикс] для [элемент] не определен): enter image description here

Как я могу решить это?

1 Ответ

2 голосов
/ 01 июля 2019

В сообщении говорится, что префиксы пространства имен не определены. Это относится к префиксам gmd: и gco:, которые встречаются в вашем XSLT.

Они определены в вашем XML ....

<gmd:MD_Metadata xmlns:gmd="http://www.isotc211.org/2005/gmd" 
                 xmlns:gco="http://www.isotc211.org/2005/gco"

Итак, вам просто нужно добавить похожие определения в ваш XSLT, чтобы он распознал их

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:gmd="http://www.isotc211.org/2005/gmd" 
    xmlns:gco="http://www.isotc211.org/2005/gco">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...