xsl странное поведение с использованием переменных - PullRequest
0 голосов
/ 19 мая 2009

Я сохранил дерево файла в $ на

<xsl:variable name="onto" select="document('file.xml')"/>

В некоторых местах я могу использовать эту переменную, как предполагалось:

<xsl:copy-of select="$onto/rdf:RDF"/>

Но у меня проблемы в других местах, странные символы пишутся на выходе:

<xsl:element name="autor">
     <xsl:attribute name="rdf:resource">

     <xsl:text>#</xsl:text> <xsl:value-of select="$onto"/>
     </xsl:attribute>
</xsl:element>

Это начало вывода, который я получил:

<autor rdf:resource="#&#10;  &#10;  &#10;    &#10;      &#10;    &#10;  &#10;  &#10;    &#10;      &#10;    &#10;  &#10;  &#10;    &#10;      &#10;    &#10;  &#10;  &#10;  &#10;    &#10;  &#10;  &#10;    &#10;      &#10;    &#10;  &#10; 

Что мне не хватает? В чем дело? Если это слишком для атрибута, что я могу сделать? Спасибо

1 Ответ

0 голосов
/ 19 мая 2009

Когда <xsl:value-of> применяется к фрагменту дерева, он получает текстовое содержимое этого дерева. В вашем случае, похоже, что ваш XML-файл не содержит никакого текста (кроме пробелов), который не имеет значения атрибута. Я подозреваю, что вы хотите выбрать значение определенного атрибута узла в документе, например ::

<xsl:value-of select="$onto//foo/@bar"/>

(Не зная структуры вашего XML и того, что вы пытаетесь выбрать, я не знаю, каким будет реальный путь.)

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