-1

私の入力XMLは次のとおりです。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header>
        <ns0:PartyInfo xmlns:ns0="http://www.google.com/"> 
             <name xmlns="">John</name> 
        </ns0:PartyInfo> 
    </SOAP-ENV:Header>

    <SOAP-ENV:Body>
        <ns0:OperationRequest xmlns:ns0="http://www.yahoo.com"> 
            <name xmlns="">Mary</name> 
        </ns0:OperationRequest>
    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

1)最初の問題:XSLTでは、「ns0」名前空間の値でしか宣言できないため、ノードの1つにしかアクセスできません。どうすれば両方にアクセスできますか(できれば同じxsltファイルで)?

2)私が宣言するとします

xmlns:ns0="http://www.google.com"

次に、「John」文字列が追加の文字とともに出力されます。

ここに画像の説明を入力してください

normalize-spaceを使用してこれを修正できますが、正しくないようです。

4

1 に答える 1

1

XSLTコードで使用する名前空間プレフィックスは、ソースドキュメントで使用されるプレフィックスと同じである必要はありません。一致する必要があるのはURIだけです。したがって、XSLTでは、異なるプレフィックスを2つの名前空間URIにバインドするだけです。

于 2012-05-11T08:43:24.190 に答える