如何在节点对象上使用vala中的xpath

时间:2012-06-20 08:36:43

标签: xpath libxml2 vala

如何在Vala上对Xml.Node对象使用XPath?

我能找到的唯一例子是Context是从Doc对象创建的,但是我没有一个Xml.Doc对象。有没有办法将Xml.Node转换为Xml.Doc?或者还有其他方式吗?

我正在看的例子是:https://live.gnome.org/Vala/XmlSample

感谢。

2 个答案:

答案 0 :(得分:1)

Xml.Node类有一个Xml.Doc doc成员。您应该能够使用它来获取节点的相关Xml.Doc。

答案 1 :(得分:0)

我也会对此感兴趣,这是我到目前为止所做的事情(我只是在学习Vala)

    // Get the node's name
    string node_name = iter->name;

    switch (node_name){
            case "host":
                    this.host = (string) iter->get_content ();
                break;   
            case "username":
                    this.username = (string) iter->get_content ();
                break;   
            case "password":
                    this.password = (string) iter->get_content ();
                break;   
            case "database":
                    this.database = (string) iter->get_content ();
                break;   
             case "port":
                    this.port = (int)iter->get_content ();
                break;   

 }

但是由于显而易见的原因,这可以很好地使用非常小而简单的xml,但是当你得到一个更复杂和更大的xml时,你的性能将受到很大影响。