【问题标题】:how to use xpath in vala on a node object如何在节点对象的vala中使用xpath
【发布时间】:2012-08-23 14:07:33
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: xpath libxml2 vala


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我也会对此感兴趣,这是我迄今为止一直在做的事情(我只是在学习 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 时,您的性能将受到很大影响。

      【讨论】:

      • 您可以使用 Xml.Node.doc 从节点获取相关的 Xml.Doc,然后您可以使用它来评估 XPath 查询。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2011-02-06
      • 1970-01-01
      相关资源
      最近更新 更多