2012-05-14 1 views
1

Поймите ли вы, если кто-нибудь может помочь мне найти способ читать текст как выражение xpathКак читать текст как выражение xpath

e.g. это мой XML-документ

<abc> 
    <XYZ> 
     <include>/citizen[./marital_status[text() ='married']]</include> 
    </XYZ> 
</abc> 

и пишу таблицу стилей

<xsl:template match="abc"> 
     <xsl:call-template name="evaluate"> 
      <xsl:with-param name="include"> 
       <xsl:apply-templates select="$include"/> 
      </xsl:with-param> 
     </xsl:call-template> 
    </xsl:template> 

Проблема здесь состоит в том, что текст <include> элемента здесь является то, что я хочу быть выражением XPath в <xsl:apply-templates select="$include"/>. это даст мне граждан, которые поженились, но здесь я просто получаю строку "/citizen[./marital_status[text() ='married']]" сам по себе. Есть ли способ сделать это?

заранее спасибо

+0

текст элемент – ashamim

+0

Я не верю, что это возможно с помощью xslt 1.0 без использования http://www.exslt.org/ или других функций расширения. –

+0

http://stackoverflow.com/questions/1551526/is-it-possible-to-use-a-dynamic-xpath-expression-in-a-xslt-style-sheet –

ответ

1

Проверьте, что доступно в выбранном процессоре XSLT: имеет ли он какое-то ое: оценку() функция расширения. Если нет, или если вы хотите переносное решение, альтернативой является создание таблицы стилей (или модуля стилей), содержащей соответствующее выражение, а затем скомпилировать и выполнить таблицу стилей.