如何在Java中转换C#InnerText XPath方法?

时间:2013-12-16 14:18:46

标签: c# java xml xpath xml-parsing

我有以下 C#方法,其中包含 XPath 查询:

  public bool setDriveParameter(DefaultDriveParameter parameter, string valore){
      System.Xml.XmlNode n;
      n = _document.SelectSingleNode("//root/settings/defaults/" + parameter.ToString().Replace("_", "-"));
      if (n == null) {
          return false;
      }

      n.InnerText = valore;

      return true;
  }

我必须在 Java 中进行转换,但我对XPath查询有疑问,我做了类似的事情:

  public boolean setDriveParameter(DefaultDriveParameter parameter, String valore) {
      Element n;
      XPath xPath;

      try {
          xPath = XPath.newInstance("//root/settings/defaults/" + parameter.toString().replace("_", "-") );
          n = (Element) xPath.selectSingleNode(CONFIG_DOCUMENT);

          if (n == null) {
              return false;
          }
          n.setText(valore);

      } catch (JDOMException e) {
      }
      return true;

  }

我怀疑主要与这个C#系列有关:

 n.InnerText = valore;
Java中的

正确使用:

n.setText(valore);

有相同的含义吗?

TNX

安德烈

1 个答案:

答案 0 :(得分:1)

这不是Java与C#的问题,而是您使用的API的问题。假设您将JDOM http://www.jdom.org/docs/apidocs/org/jdom2/Element.html#setText%28java.lang.String%29与Java一起使用,那么调用n.setText(valore)等同于C#和XmlElement / XmlNode(.NET框架中的DOM API)和n.InnerText = valore