0

我有这个代码:

main:-
load_structure('ethernet.html',Element,[dialect(sgml),shorttag(false)]),
    xpath(Element, //title, TITLE).

结果是:

TITLE=element(title,[],[This is my lan]).

我只会得到“这是我的局域网”。我能怎么做?我已阅读库(xpath)但我没有找到解决方案。

4

1 回答 1

1

元素保存完整的页面结构。你在搜索什么?

例如,遍历所有段落并显示缩进

...
forall(xpath(Element, //p, Para), xml_show("", _, Para))
...

其中 xml_show 是我前段时间写的一个助手,试图检查一些真实世界的数据。

%%  xml_show(+Depth, +ElShow, +E)
%
%   display xml tree indented
%
xml_show(Depth, ElShow, E) :-
    format('~s~@~n', [Depth, (ground(ElShow) -> call(ElShow, E) ; xml_elshow(E) )]),
    (   E = element(_, _, Xs)
    ->  !, maplist(xml_show([0' |Depth], ElShow), Xs)
    ;   true
    ).

:- meta_predicate xml_show(+, 1, +).

xml_elshow(E) :-
    E = element(D, A, _)
    -> write(D:A)
    ;  write(E).
于 2013-06-26T18:59:32.377 回答