私はXMLを使ってアンケートを作成しています。列と行との調査で(マトリックス)の質問には、次のようになります。XSLTテンプレートをさまざまなタイプ(「モジュールベース」)で使用する方法は?
<?xml version= "1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="SurveyTemplate.xsl"?>
<Survey>
<id>1</id>
<title>Spørgeskema</title>
<ViewList>
<View>
<id>1</id>
<parrent_id>null</parrent_id>
<order>1</order>
<title>Dette er titlen på den første side/kategori</title>
<QuestionList>
<Question>
<id>1</id>
<visible>false</visible>
<order>1</order>
<classname>matrixradio</classname>
<type>MatrixRadio</type>
<wording>Dette er et spørgsmål</wording>
<helptext>Dette er en hjælpetekst, som kan hjælpe respondenten med at forstå spørgsmålet</helptext>
<RowList>
<Row>
<id>412</id>
<order>1</order>
<visible>true</visible>
<css_class_name>Hvis man har lyst til at formatere den r�kke p� en speciel m�de</css_class_name>
<helptext>Dette er en hjælpetekst, der kan hjælpe respondenten med at forstå hvad denne række betyder</helptext>
<title>Dette er titlen på den første række</title>
<ColumnList>
<Column>
<id>3421</id>
<visible>true</visible>
<order>1</order>
<title>Dette er titlen på den første kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>false</value>
</Column>
<Column>
<id>123</id>
<visible>true</visible>
<order>2</order>
<title>Dette er titlen på den anden kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>true</value>
</Column>
<Column>
<id>444</id>
<visible>true</visible>
<order>1</order>
<title>Dette er titlen på den tredje kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>false</value>
</Column>
<Column>
<id>222</id>
<visible>true</visible>
<order>1</order>
<title>Dette er titlen på den fjerde kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>false</value>
</Column>
</ColumnList>
</Row>
<Row>
<id>555</id>
<order>2</order>
<visible>true</visible>
<css_class_name>Hvis man har lyst til at formatere den række på en speciel måde</css_class_name>
<helptext>Dette er en hjælpetekst, der kan hjælpe respondenten med at forstå hvad denne række betyder</helptext>
<title>Dette er titlen på den anden række</title>
<ColumnList>
<Column>
<id>3421</id>
<visible>true</visible>
<order>1</order>
<title>Dette er titlen på den første kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>true</value>
</Column>
<Column>
<id>123</id>
<visible>true</visible>
<order>2</order>
<title>Dette er titlen på den anden kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>false</value>
</Column>
<Column>
<id>444</id>
<visible>true</visible>
<order>1</order>
<title>Dette er titlen på den tredje kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>false</value>
</Column>
<Column>
<id>222</id>
<visible>true</visible>
<order>1</order>
<title>Dette er titlen på den fjerde kolonne</title>
<helptext>Hjælpetekst, der hjælper brugeren med at forstå denne kolonne</helptext>
<value>false</value>
</Column>
</ColumnList>
</Row>
</RowList>
</Question>
<Question>
<id>412</id>
<visible>true</visible>
<order>2</order>
<type>Matrix</type>
<wording>Dette er også et spørgsmål</wording>
<helptext>Dette er en hjælpetekst, som kan hjælpe respondenten med at forstå spørgsmålet</helptext>
</Question>
</QuestionList>
</View>
<View>
<id>2</id>
<parrent_id>null</parrent_id>
<order>1</order>
<title>Moo</title>
</View>
</ViewList>
</Survey>
私は
<type>MatrixRadio</type>
ノードに応じて、異なるXSLTテンプレートを使用したいと思います。したがって、すべての質問が同じように構築されていても、それらは異なって見える可能性があります。 質問、列、および行の表示方法を定義する、各質問タイプごとに異なる.XSLTファイルを使用します。
i「は、モジュール/テンプレート」を含めるために、次のコードを使用している場合:
<xsl:include href="MatrixRadio.xslt" />
そしてテンプレートは質問、行と列の書式設定方法の定義が含まれています。同じページに異なるタイプの質問がある場合は、それぞれのタイプの質問、行、列を定義するXSLTテンプレートが互いにオーバーライドするため、インペクションはありませんか?
私が読んだ限り、xsl:includeを使用すると、スタイルシートからコンテンツが取り込まれ、現在の状態になります。 4つの異なるスタイルシートを使用する必要があり、それらのスタイルシート内のテンプレートが同じ名前を持つ場合は、問題が発生すると思います。
- EDIT
私は仕事を得るカント次のコードを、書かれているコメントによると:
SurveyTemplate.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="MatrixRadio.xslt" />
<xsl:template match="/">
<html>
<body>
<h2>XSLT-Test template</h2>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="ViewList">
<p>
<xsl:for-each select="View">
<xsl:call-template name="ViewTemplate">
</xsl:call-template>
</xsl:for-each>
</p>
</xsl:template>
<xsl:template name="ViewTemplate">
<p>
<xsl:value-of select="title"/>
</p>
</xsl:template>
</xsl:stylesheet>
と
MatrixRadio.xslt
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Question[type = 'MatrixRadio']">
<div>
<xsl:attribute name="class">
<xsl:value-of select="classname"/>
</xsl:attribute>
<b>
<xsl:value-of select="order"/> . <xsl:value-of select="wording"/>
</b>
</div>
</xsl:template>
</xsl:stylesheet>
MatrixRadio.xsltテンプレートが処理されていません。私は上記のXML構造を使用しています。
正常に動作します: 'ます。 ...' –
Torious
クール私はこれを試して、あなたに戻ってくる:) – Kenci
私はあなたの提案を試みたが、私はそれを動作させることができません。おそらく私の編集した質問を見ることができますか? – Kenci