xpath的查询条件中不能用中文吗?(50分)

  • 主题发起人 主题发起人 yanfei0891_firs
  • 开始时间 开始时间
Y

yanfei0891_firs

Unregistered / Unconfirmed
GUEST, unregistred user!
xml源文件:
<?xml version="1.0" encoding="GB2312"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>张三</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.00</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
程序代码:
xml := CoDOMDocument.Create;
xml.load('c:/a.xml');
node:=xml.documentElement;
query:='//book[author='+#39+'张三'+#39+]';
nodelist:=node.selectNodes(query);
//上面这句话delphi就会报错,但如果改成 query:='//book[author='+#39+'J K. Rowling'+#39+]';就没有问题,然道查询条件里不能有中文?

望高手告之!
 
我上面的帖子写的有问题,不是delphi报错,是查不到数据
问题是这样的:
这个问题和是否中文没有关系,程序只能查询到<book>下面的第一个<author>元素
比如xml源文件是
...
<book category="COOKING">
<title lang="en">Everyday Italian </title>
<author>a</author>
<author>b</author>
<year>2005 </year>
<price>30.00 </price>
</book>
....
query:='//book[author='+#39+'b'+#39+']';
这时候查不到数据
但如果xml源文件是
...
<book category="COOKING">
<title lang="en">Everyday Italian </title>
<author>b</author>
<author>a</author>
<year>2005 </year>
<price>30.00 </price>
</book>
....
query:='//book[author='+#39+'b'+#39+']';
这时候就查到数据了
我考虑查询条件是不是应该改成
query:='//book[contains(author,'+#39+'b'+#39+')]';
但delphi报错,说不支持contains语法,
怎么办呢?
 
后退
顶部