2016-12-18 2 views
0

は、だからここに私の質問だ多くのノード価値の基本的なXML/XSLT - 彼らは同じ名前を持っている、彼らはTEXTと他のノードに構成されている場合

iが対処しようとしている全体のシンプルなXMLコードXSLのいくつかの基本は次のように提示された学習:私は、どのように<para>は、例えば<company><link ref=...のために他のsubchildsで構成さ>との残りの部分と全体印刷するVALUE-OFを使用することを把握しようとしている

<?xml version="1.0" ?> 
<?xml-stylesheet type="text/xsl" href="penguins.xsl" ?> 

<article> 
<date>28/06/2000 12:30</date> 
<title>Rescued penguins swim home</title> 
<para> 
    <place>Cape Town</place> 
    Some 150 penguins unaffected by the oil spill began their long swim  from Port Elizabeth 
    in the Eastern Cape back to their breeding habitat at Robben Island near Cape Town on Wednesday. </para> 

<para>The penguins, who have all been tagged, were transported in a truck hired by the 
    <company>South African National Conservation of Coastal Birds (Sanccob)</company> 
    to Port Elizabeth on Tuesday night. </para> 

<para>Its not known how many more birds will be released from Port Elizabeth after receiving treatment. </para> 

<para>More than 
    <link ref="www.newsrus.com/oilspill.html">400 tons of fuel oil 
    escaped from the bulk ore carrier Treasure</link> before divers were able to seal the holds. </para> 

<para>The ship was carrying 130 000 tons of iron ore and 1 300 tons of fuel oil when she sank off the 
    Cape West coast last Friday. </para> 

<para>A spokesperson for 
    <company>Sanccob</company> 
     , Christina Pretorius said the centre had a capacity to treat 1 000 penguins but presently 
     there were in excess of 4 500 birds being rehabilitated and more would be brought to the 
     centre on Wednesday. </para> 
<source>John Rolfe</source> 
</article> 

テキスト。他subchildsせずに、テキストのみを印刷し

<xsl:for-each select="article/para"> 
    <xsl:value-of select="text()"/><br/> 

:私はこの1つでこだわっています。

そのシンプルで基本的な質問のため申し訳ありませんが、i'vはちょうどあなたがparam要素に深いコピーを実行しようとしているようですねXML/XSLT

+0

あなたが求めていることは完全にはっきりしていません。 ' 'は、与えられた入力ノードのテキスト値と、そのノードの子のテキスト値を出力します(ただし入力ノードは子を持つ要素です)。テキストの代わりに ''の子もXML要素としてレンダリングする必要がありますか? –

+0

申し訳ありませんが、私はそれを指定しませんでした。はい、私は供給された入力ノードのテキスト値だけでなく、そのノードの子のテキスト値を出力したいと思います。あなたがコードで見ることができるように、多くのパラ。私がvalue-ofを使うと、最初のparamだけが出力されます。すべてのパラを1つずつ出力する(パラに含まれている他の子供のテキストとテキストを使用)。 – najmaka

答えて

0

を開始しました。 この答えはあなたがXSLTの標準的なコーディングパターンを使用する必要があります。このXSLT: deep child copy

+0

またはは正しいですが、 for.eg最後にテキストで構成されたpara、およびの子があり、それらのすべてをフォーマットすることができます。ディープコピーを使用すると、すべてがプレーンテキストで表示されます。 – najmaka

1

をカバー:あなたはその子を処理するために再帰した、各要素名のためのテンプレートルールを記述します。

<xsl:template match="p"> 
    <p> 
    <xsl:apply-templates/> 
    </p> 
</xsl:template> 

その後、テンプレートを変更しますあなたが何か違うことをしたいと思っている要素のための規則。

これはすべてのXSLT教科書で詳しく説明していますので、それを忘れてしまった場合は、コーディングを開始する前にもっと読んでください。

関連する問題