运算符在SwiProlog中的xpath查询中出现预期错误

时间:2012-03-14 08:32:48

标签: xml xpath prolog swi-prolog

我正在尝试使用xpath谓词来提取已解析的XML文件的一部分,但不断收到语法错误:操作符期望特殊字符(例如“/”和“@”)xpath查询。当我用单引号包围查询时,它会失败。

?- load_xml_file( 'books.xml', DOM ).
DOM = [element(book, [genre=romance], ['\n   Gone With The Wind\n']), element(book, [genre=thriller], ['\n   The Shining\n'])].

?- load_xml_file( 'books.xml', DOM ), xpath(DOM, //book(@genre=thriller), Book).
ERROR: Syntax error: Operator expected
ERROR: load_xml_file( 'books.xml', DOM ), xpath(DOM, //
ERROR: ** here **
ERROR: book(@genre=thriller), Book) . 

?- load_xml_file( 'books.xml', DOM ), xpath(DOM, '//book(@genre=thriller)', Book).
false.

books.xml的内容:

<?xml version="1.0"?>
<book genre="romance">
   Gone With The Wind
</book>
<book genre="thriller">
   The Shining
</book>

1 个答案:

答案 0 :(得分:3)

我想你错过了宣言

: - use_module(library(xpath))。