1
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<Package ID="b7137f2>   
<Compatibility_Rules ID="32fd84b4-7b9b-40e2-8265-8e2e4f856a8d">
    <Rule_Event ID="992f04cb-6bd1-42bb-9578-87793dd38aca">
        <Name>Entity Selection</Name>
    </Rule_Event><Rule_Name>Private Line Exclusions</Rule_Name>
    <Rule_Statement ID="d0cc0700-2199-4a51-af68-72dfe27d878f">
        <Description>Package is Private line</Description>
    </Rule_Statement>
</Compatibility_Rules>
</Package>
</Root>

属性名「Rule Event」を抽出し、次のように表示したい:

<attribute depth="0">
        <name>Compatibility Rules</name>
        <value GUID="B7137F2">
            <attributes>
                <attribute depth="1">
                    <name>Rule Event</name>
                    <value GUID="32FD84B4">
                        <attributes/>
                     </value> 
                </attribute>
           </attributes>
          </value>
 </attribute>

次のことを試しましたが、name() はルール イベントの親、つまり互換性ルールを返します。

  <xsl:template match="Compatibility_Rules"> 
    <attribute depth="0">           
            <name>
                <xsl:value-of select="local-name()"/>
            </name>
        <value GUID="{../../*/@ID}"></value>
        <attributes>
            <attribute depth="1">
                <name><xsl:value-of select="name()"/> </name>
            </attribute>
        </attributes>
    </attribute>          
</xsl:template>       

ルール イベントにアクセスするにはどうすればよいですか。私は XML と XSL にまったく慣れていません。

4

1 に答える 1

1

私は解決策を見つけました:name(* [1])

于 2012-06-27T18:12:50.370 に答える