2017-03-16 13 views
-1

私が必要とするのは、ヨーロッパから来たすべての映画をテーブルに表示することです。テストのために、私はちょうどチェコとフランス映画をフィルタリングしたいですが、私はいつもチェコ映画を取得します。 Heresはコードです:XSLTで国をフィルタリングする方法は?

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE xsl:stylesheet [ 
<!ENTITY nbsp "&#160;"> 
<!ENTITY copy "&#169;"> 
<!ENTITY reg "&#174;"> 
<!ENTITY trade "&#8482;"> 
<!ENTITY mdash "&#8212;"> 
<!ENTITY ldquo "&#8220;"> 
<!ENTITY rdquo "&#8221;"> 
<!ENTITY pound "&#163;"> 
<!ENTITY yen "&#165;"> 
<!ENTITY euro "&#8364;"> 
]> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html" encoding="utf-8"/> 
<xsl:template match="/"> 
<html> 
<head> 
<meta charset="utf-8"/> 
<title>Untitled Document</title> 
</head> 
<body xml:space="preserve"> 
<xsl:variable name="europe_countries"> 
    <xsl:choose> 
    <xsl:when test="'CZ'">CZ</xsl:when> 
    <xsl:when test="'FR'">FR</xsl:when> 
    </xsl:choose> 
</xsl:variable> 
<table> 
    <tr> 
     <th>Movies</th> 
     <th>Countries of origin</th> 
    </tr> 
    <xsl:for-each select="movies/movie[substring(country_code,1) = $europe_countries]"> 
     <tr> 
      <td><xsl:value-of select="movie_name"/></td> 
      <td><xsl:value-of select="country_code_full"/></td> 
     </tr> 
    </xsl:for-each> 
</table> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

あなたはどこに問題がありますか?誰かが私を助けてくれることを願います。おかげさまで

+0

ます。 ます。 CZ ます。 FR ..このブロックを確認してください – rathna

+0

問題があることを知っていますが、どのようにして問題ないのでしょうか。 – pzoli

+0

これは以前の質問とはどう違うのですか?http://stackoverflow.com/questions/ 42796640/display-european-countries-with-xslt –

答えて

1

変数を定義するという概念は間違っています。 このコードを知る前に、特定の国コードが "european"であるかどうかを指定することはできません。あなたがここにブール値のコンテキストでを与える非空の文字列を、テストするため

あなたが書いたそれぞれの試験は、(例えば<xsl:when test="'CZ'">) 、満たされています。

ここで、どのように行うべきかに移りましょう。

開始点は、ヨーロッパ諸国のコードを含む文字列変数で、スペースで区切られています。

<xsl:variable name="europe_countries" select="'CZ DE FR'"/> 

次に、あなたがのために、各ループ次書くことができます:。私はソース映画タグは子COUNTRY_CODEタグ(2文字)が含まれていることを前提とし

<xsl:for-each select="movies/movie[contains($europe_countries, country_code)]"> 

を したがって、上記の条件は映画、以下の述語を満たすタグを選択し、選択します。

europe_countiries変数は、問題の映画の子COUNTRY_CODEタグで指定されたテキストが含まれています。

もちろん、ターゲットバージョンでは、残りのヨーロッパのコントリーコードを追加する必要があります。

+0

あなたは私の人生を救ってくれました。 – pzoli

関連する問題