0

我使用http://xpath.online-toolz.com/tools/xpath-editor.php 作为在线 XPath 评估器。我尝试了其他几个,但都是一样的

我的 xml 中有以下内容:-

<?xml version="1.0"?>
<test xmlns="abc">
</test>

现在 XPath 查询

/
.

给我输出:-

<test xmlns="abc">
</test>

但是,查询

test
/test
//test

根本不要给我任何输出。我犯了一个非常基本的错误,但我不知道是什么。我认为这与命名空间有关,但将查询更改为

abc:test

也无济于事,因为它给出了 Invalid Expression 错误。

我正在使用http://www.w3schools.com/xpath http://www.tizag.com/xmlTutorial/xpathtutorial.php & http://oreilly.com/perl/excerpts/system-admin-with-perl /十分钟-xpath-utorial.html

作为我的 XPath 教程的来源。

4

1 回答 1

1

您的目标文件中没有明确的命名空间前缀,但您仍然需要满足它们。你可以写

/*[local-name()='test' and namespace-uri()='abc']

您的“abc”是一个命名空间URI,而不是命名空间前缀。它可能是无效的,因为大多数工具会针对 URI 形式对其进行测试,例如

http://www.abc.com/

更好的文件是:

<test xmlns="http://www.abc.com">
</test>

当您的查询是:

/*[local-name()='test' and namespace-uri()='http://www.abc.com/']

我已经在您的网站上对此进行了测试,并且可以正常工作。

表格

abc:test

将取决于将前缀设置abc'http://www.abc.com/'的机制,并且站点上似乎没有机制

于 2012-06-28T18:34:24.193 回答