2012-03-14 5 views
2

Я использую таблицу стилей XSL 1,0, и у меня есть узел, подобный следующему:Получение полного текста с детьми/внуками в XPath/XSL

<p>Hello, <b>John</b>, how are you?</p> 

Я в настоящее время в XSL: шаблон сопоставлен с узлом <p>. Я хочу создать переменную xsl:, которая заканчивается строковым значением «Привет, Джон, как дела?».

Функция text() здесь не работает, поскольку она возвращает только «Привет,, как дела?».

ответ

3

Это, вероятно, будет более эффективным, просто принять строковое значение текущего узла

<xsl:variable name="x"> 
    <xsl:value-of select="."/> 
<xsl:variable> 
1

Duh, я решил. :)

descendant-or-self::text() 
+1

Есть два лучше и более простые решения тогда это. Может быть, вы могли бы чему-то научиться у них? –

+0

Прохладный, безусловно, полезно знать альтернативы (и, вероятно, более «правильные» альтернативы). Благодаря! –

2

я нахожусь в данный момент в XSL: шаблон сопоставляется с <p> узла. Я хочу, чтобы создал переменную xsl:, которая заканчивается строковым значением «Привет, Джон, как дела?».

Просто используйте:

<xsl:variable name="vSomeName" select="string(.)"/> 
Смежные вопросы