Как бороться с пространствами имен в XSLT? - PullRequest
0 голосов
/ 18 июля 2009

Если у меня есть XML, как это:

  <sample>
     <a:element1 xmlns:a="..." />
     <b:element2 xmlns:b="..." />
  </sample>

похоже, что XSL не может найти два дочерних узла <sample> из-за префиксов a: и b:.

Если я исключу два префикса, а также объявление пространства имен, они будут найдены.

Проблема в том, что я ничего не могу поделать с оригинальным XML-файлом. Итак, как я могу найти <element1> и <element2>?

1 Ответ

1 голос
/ 18 июля 2009

Это должно работать:

 <xsl:stylesheet
        xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
        xmlns:a="http://nsa"
        xmlns:b="http://nsb"
        version='1.0'
        >
<xsl:template match="sample">
  <xsl:value-of select="a:element1/@id"/>
   <xsl:value-of select="b:element2/@id"/>
</xsl:template>

</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...