-2

これは私のxsltファイルです:-

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>

  <xsl:template match="*" mode="item">
    <li>
      <xsl:value-of select="@value" />
    </li>
    <xsl:apply-templates select="current()[*]" />
  </xsl:template>

  <xsl:template match="*/*">
    <ul>
      <xsl:apply-templates select="*[1] | node()[current()/ancestor::*[2]]" 
                           mode="item" />
    </ul>
  </xsl:template>
</xsl:stylesheet>

このxsltを使用して、HTMLタグを作成しましul li
た。ここに私のxmlファイルがあります:-

<?xml-stylesheet href="b.xsl" type="text/xsl"?>
<root>
  <child_1 entity_id = "1" value="Game" parent_id="0">
    <child_2 entity_id="2" value="Activities" parent_id="1">
      <child_3 entity_id="3" value="Physical1" parent_id="2">
        <child_6 entity_id="6" value="Cricket" parent_id="3">
          <child_7 entity_id="7" value="One Day" parent_id="6"/>
        </child_6>
      </child_3>
      <child_4 entity_id="4" value="Test1" parent_id="1">
        <child_8 entity_id="8" value="Test At Abc" parent_id="4"/>
      </child_4>
      <child_5 entity_id="5" value="Test2" parent_id="1">
        <child_9 entity_id="9" value="Test At Xyz" parent_id="5"/>
      </child_5>
    </child_2>
</child_1>
</root>

ここで、li に子がある場合、li にクリック イベントを設定し、そのテキストを div タグに出力します。
私も1つのjavascript関数を持っています。

$('li:not(:has(*))').click(function(){
   $('#result').text($(this).text());
});

しかし、どうすれば申請できますか。これはわかりません。
少し助けが必要です。何人かの仲間が私を助けてくれます。
ありがとう。

4

1 に答える 1

0

現在の xsl は次の出力を提供します。

<ul>
   <li>Activities</li>
   <ul>
      <li>Physical1</li>
      <ul>
         <li>Cricket</li>
         <ul>
            <li>One Day</li>
         </ul>
      </ul>
      <li>Test1</li>
      <ul>
         <li>Test At Abc</li>
      </ul>
      <li>Test2</li>
      <ul>
         <li>Test At Xyz</li>
      </ul>
   </ul>
</ul>

実際、ネストされた ul はそれ自体がリスト項目であるため、li タグ内にある必要があります。修正された他の 1 つまたは 2 つの問題があります。

<ul>
   <li>Activities</li>
   <li>
      <ul>
         <li>Physical1</li>
         <li>
            <ul>
               <li>Cricket</li>
            </ul>
         <li>One Day</li>
      </ul>
   </li>
   <li>Test1</li>
   <li>
      <ul>
         <li>Test At Abc</li>
      </ul>
   </li>
   <li>Test2</li>
      <ul>
         <li>Test At Xyz</li>
      </ul>
   </li>
</ul>

あなたが求めているものは完全には明らかではありません。質問を編集して、必要な出力を表示してください。必要な xsl についてアドバイスできます。スクリプトを含める場合は、次のようにします。必要に応じてインライン リンクまたは外部リンクを使用します。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
    <html>
        <xsl:call-template name="HeaderTemplate" />
    <body>

    </body>
    </html>
</xsl:template>

<xsl:template name="HeaderTemplate">

    <head>
    <script>
        function MyFunction()
            {

            }
    </script>
    <script src="myScript.js"></script>
    </head>

</xsl:template>

</xsl:stylesheet>
于 2013-04-25T10:06:38.510 に答える