0

私は以下のxml形式を持っています:

<tcm:Data>
    <tcm:Title>Test</tcm:Title>
    <tcm:Type>Normal</tcm:Type>
    <tcm:Schema xlink:type="simple" xlink:title="Test" xlink:href="tcm:233-190439-8" IsMandatory="false"/>
    <tcm:Content>
        <GeneralContent>
            <Title>
                <TitleText>Test</TitleText>
            </Title>
            <Summary>Test</Summary>
            <Artwork xlink:type="simple" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="Test" xlink:href="tcm:233-195404"/>
        </GeneralContent>
        <test1></test1>
    </tcm:Content>
</tcm:Data>

以下の xpath を使用して、コンテンツの後に最初のノードを取得しています

var firstNode = local-name(//tcm:Data/tcm:Content/node())

XMLSpy をチェックインすると、必要な結果が得られます。つまり、上記の "GeneralContent" コードは、Firefox では正常に動作しますが、Internet Explorer では上記のエラーが発生します。

考えられる理由を教えてください。

ありがとう。

よろしく、 マノジ

4

1 に答える 1

0

Internet Explorer で使用する XPath 実装と API を示していません。通常、人々は MSXML のバージョンを XPath 実装として使用し、MSXML によって公開される API には 2 つのメソッドしかなくselectSingleNodeselectNodes実際には、呼び出しのように文字列値ではなく、ノード セットを返すために XPath 式を引数として渡す必要がありlocal-name(...)ます。したがって、MSXML では、XPath 式を完全な XSLT スタイルシートに入れて実行しない限り、プリミティブ値 (つまり、文字列、数値、ブール値) を返す XPath 式を評価できません。

于 2012-12-06T11:53:44.140 に答える