2010-10-28 5 views
1

Я использую XSLTJSON для преобразования моего XML в JSON. Мой необработанный XML не в том формате, который я хочу, поэтому сначала передаю его с помощью таблицы стилей XSL, чтобы очистить его, а затем передать вывод этой таблицы стилей в XSLTJSON.Пропустить XSL-шаблон для вывода на XSL-функцию

Прямо сейчас я делаю это, зная трансформаторы поочередно. Я бы хотел оптимизировать его и потребовать только один вызов трансформатора. Есть ли способ написать таблицу стилей XSL, которая включает json.xsl, совпадения на «/», делает это, а затем передает свой результат в json: generate()?

+0

возможно дубликат [XSLT - ссылающегося на выходе результат предыдущего шаблона] (http://stackoverflow.com/questions/12361371/xslt-referencing-the-output-result -of-the-previous-template) –

ответ

0

Эта таблица стилей:

<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:json="http://json.org/"> 
    <xsl:import href="xml-to-json.xsl"/> 
    <xsl:template match="/"> 
     <xsl:variable name="vFirstPass"> 
      <xsl:apply-templates/> 
     </xsl:variable> 
     <xsl:value-of select="json:generate($vFirstPass)"/> 
    </xsl:template> 
    <xsl:template match="node()|@*"> 
     <xsl:copy> 
      <xsl:apply-templates select="node()|@*"/> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 
+0

Я хочу сначала применить мою таблицу стилей (у нее есть шаблон, который соответствует «/»), а затем передать результат из этого в json: generate() из импортированного json.xsl. Это похоже на незначительную корректировку от того, что у вас есть, но я не совсем уверен, что изменить. Раньше я никогда не работал с режимами. –

+0

@ Danny Cohn: Вы пользуетесь версией XSLT 2.0 или XSLT 1.0? – 2010-10-28 20:33:43

+0

Я использую XSLT 2.0 –