2012-02-27 7 views
1

は、私は本のノードで構成されるXMLファイルがあり、それぞれの本は1-4著者、1つのタイトル私も上記のXMLファイルに関連するXSLファイルを作成しましたXMLファイルをHTML形式で表示するには、ユーザーの入力に応じてさまざまな方法がありますか?

& 1年が含まれているので、私は開いたときXMLファイルは、ブラウザの3つの行からなるHTMLテーブル形式で表示されます。著者、タイトル、年、

私が今したいのは、上記のテーブルの内容はすべてではなく、ユーザーの入力から尋ねられるものだけです(ユーザー入力用の適切なフィールドは同じHTMLファイルにもあります)。

ユーザは、著者名、年、タイトル、またはタイトルまたは著者の名前に含まれる単語を入力し、適切なテーブルを提示することができる。

私は私の質問は以下の通りですこのすべてに新しいです:

  1. は、私は再びXMLとXSLファイルの内容を台無しにする必要がありますか、私は今からそのまま置いておく必要があります私が作成しているhtmlファイルのみを処理しますか?

  2. 私のHTMLファイルには何が必要なのですか? XMLファイルの一部のみを表示するが、常にXSLファイルに従うJavascript関数? HTMLファイルでXSLTを使用しているのでしょうか?単にjavascriptですか?私は必要なもの

は、ユーザー(ジャバスクリプト?)からの入力を取るなめらかを作成し、ユーザーの入力に応じてXMLを解析するパーサ(XSLTを?)を使用するのですか?私は作成したXSLテンプレートを通してフィルタリングされた画面に結果を返します??

誰かが私がステップバイステップ(詳細ではなく、これに関係するすべての問題をどの順序で処理すべきか)に従うべきプロセスを教えてください。

ご理解とご協力をいただき、ありがとうございます。私はw3schoolsに関する多くの情報があることを知っていますが、問題はすべてが断片化しており、どのように順番に、どの方法を選択するかをすべて組み合わせる方法はまだ分かりません。

btw。私はjQueryをXML、XSLT、XPATH、HTML、Javascript標準のみに使用したくない。

答えて

1

パラメータにパラメータとしてユーザーが希望する処理を渡す必要があります。

xsl:param命令を参照してください。

変換の外部パラメータは、グローバルに宣言されたもの(上位要素の子要素xsl:stylesheetxsl:param要素です。

変換を呼び出す際に、XSLT変換の呼び出し側がこれらのパラメータの値を指定する方法は、実装依存のであり、1つのXSLTプロセッサによって異なります。正確な情報については、特定のXSLTプロセッサのドキュメントを読む必要があります。 XSLTプロセッサは、.NET XslCompiledTransformでは、変換にパラメータを渡す方法であれば

は、例えばは、XsltArgumentList.AddParam()方法を介して行われます。

0

XSLファイルとXMLファイルをjavascriptにロードする必要があり、そのためにajaxリクエストを使用できます。 iframeを使用してそれらを読み込むことができます。 XPathとXSLTを使用して、必要なものを正確に実行することができます。

例えば、ここにXMLをロードし、IFRAMEの方法を使用して、その上にXPathを使用する簡単な方法があります、それはXMLを照会するために、入力値を使用していますについては

<html> 
<head> 
    <title> xml test </title> 
    <script type="text/javascript"> 
     var xml = null; 

     function getXml(path) { 
      document.getElementById("loader").src = path; 
     } 

     function loaded(frm) { 
      if (frm.contentWindow) { 
       xml = frm.contentWindow.document; 
      } 
     } 

     function query() { 
      var value = document.getElementById("query").value; 
      var evaluator = new XPathEvaluator(); 
       var result = evaluator.evaluate("//" + value, 
        xml, 
        null, 
        XPathResult.FIRST_ORDERED_NODE_TYPE, 
        null); 

       console.log(result.singleNodeValue); 
     } 
    </script> 
</head> 
<body> 
    Query the xml: <input type="text" id="query" /> 
    <input type="button" value="Go" onclick="query()" /> 
    <iframe style="width: 0px; height: 0px; display: none;" id="loader" onload="loaded(this)"></iframe> 
    <script type="text/javascript"> 
     getXml("index.xml"); 
    </script> 
</body> 

XSLTの部分は、それを行う方法のチュートリアルです:XSLT - On the Client。このチュートリアルでは、ajaxを使用してファイルをロードする方法も示します。 もちろん私の例ではXMLと同じようにXSLファイルを読み込むことができます。

+0

Nitzanにお役立ていただきありがとうございます。私はAjaxやiFrameやPHPを使用することはできませんが、依然として私はあなたのアドバイスを試してみるつもりです!注文などに関してはまだ非常に混乱していますが、私はw3schools afterallとcomebckより具体的な質問.. –

+0

なぜあなたはiframeやajaxを使用できませんか? –

+0

これは私が持っている課題です。私たちはXML、XSLT、XPATH、HTML、Javascriptをうまく使用できません。唯一の問題は、どこから始めるべきか、そしてどのツールが何であるかをまだ分かっていないことです。ユーザが何であるかに応じて変更される検索フィールド、ボタン、テーブルをユーザに提示するにはhtmlファイルが必要です探しています.... –

関連する問題