1

理論的には比較的単純なタスクで、これを完了することはできません。

ノードの検索フィールドに特定のテキストを含む属性名があり、サブノードオプションに値があるドキュメント。

XML:

<?xml version="1.0" encoding="utf-8"?>
<root>
...
    <Documents>
    <Document Id="35330">
        <Name>The Name 1</Name>
        <DocumentEdition>
            <Fields>            
                <Field Name="Børn-Andet Godt" FieldType="CheckBoxGroup">
                    <Option Name="Billedkunst"></Option>           
                </Field>
                <Field Name="Børn-Fritidsklub" FieldType="CheckBoxGroup">
                    <Option Name="Fritidshjem"></Option>
                    <Option Name="Fritidsklub"></Option>
                    <Option Name="Ungdomsklubber"></Option>
                </Field>
                <Field Name="Børn-Fritidsliv" FieldType="CheckBoxGroup">
                    <Option Name="Natur- og fritidsforeninger"></Option>
                    <Option Name="Rollespil"></Option>
                    <Option Name="Spejder">B-Spejder</Option>
                </Field>
            </Fields>
        </DocumentEdition>
    </Document>
        <Document Id="35332">
            <Name>The Name 2</Name>
            <DocumentEdition>
                <Fields>
                    <Field Name="Børn-Andet Godt" FieldType="CheckBoxGroup">
                        <Option Name="Billedkunst"></Option>
                    </Field>
                    <Field Name="Børn-Fritidsklub" FieldType="CheckBoxGroup">
                        <Option Name="Fritidshjem">Fritidshjem</Option>
                        <Option Name="Fritidsklub"></Option>
                        <Option Name="Ungdomsklubber"></Option>
                    </Field>
                    <Field Name="Børn-Fritidsliv" FieldType="CheckBoxGroup">
                        <Option Name="Natur- og fritidsforeninger"></Option>
                        <Option Name="Rollespil"></Option>
                        <Option Name="Spejder"></Option>
                    </Field>
                </Fields>
            </DocumentEdition>
        </Document>
    </Documents>
..
</root>

だから私はテンプレートを次のようなドキュメントに適用できるようにしたいと思います

  <xsl:apply-templates select="//Document[/DocumentEdition/Fields/Field[contains(@Name,'Børn-Fritid')]/Option/text()&gt;'']"/>

しかし、それはうまくいきません。

指定するだけです。@Nameドキュメントには、特定のテキストが含まれるフィールドのサブノードであるオプションにテキストが含まれている必要があります。

xmlで、入力値を使用します。

1:Børn-Fritidsliv=>最初のドキュメントを選択します

2:Børn-Fritidsklub=>2番目のドキュメントを選択します

3:Børn-Fritid=>両方のドキュメントを選択

私を正しい方向に向けてください。

4

1 に答える 1

4

述語の先頭のスラッシュを削除し、内容を含むオプション、つまり変更があるかどうかを確認します

<xsl:apply-templates 
 select="//Document[/DocumentEdition/Fields/Field[contains(@Name,'Børn-Fritid')]/Option/text()&gt;'']"/>

<xsl:apply-templates 
 select="//Document[DocumentEdition/Fields/Field[contains(@Name,'Børn-Fritid') and Option[normalize-space()]]]"/>
于 2013-01-22T10:13:00.360 に答える