在尝试获取Internet Explorer中的第一个节点值时,获取Expression必须评估为节点集

时间:2012-12-06 11:20:40

标签: xml xpath

我有以下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中遇到上述错误。

请说明可能是什么原因。

感谢。

最诚挚的问候, 的Manoj

1 个答案:

答案 0 :(得分:0)

您还没有显示您在Internet Explorer中使用的XPath实现和API。通常人们使用MSXML的一个版本作为XPath实现,而MSXML公开的API只有两个方法selectSingleNodeselectNodes,它们确实需要将XPath表达式作为参数传入以返回节点集而不是调用local-name(...)的字符串值。因此,使用MSXML,您无法评估返回原始值(即字符串,数字,布尔值)的XPath表达式,除非您将XPath表达式放入完整的XSLT样式表并运行它。