Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将这个使用XPath的简单C方法转换为Java方法?_C#_Java_Xml_Xpath_Xml Parsing - Fatal编程技术网

C# 如何将这个使用XPath的简单C方法转换为Java方法?

C# 如何将这个使用XPath的简单C方法转换为Java方法?,c#,java,xml,xpath,xml-parsing,C#,Java,Xml,Xpath,Xml Parsing,我对在Java中使用XPath非常陌生,我不懂C 在这段时间里,我不得不将一些使用XPath的C方法转换成Java方法,对此我有些怀疑 在C方法中,我发现了以下代码行: System.Xml.XmlNode element; System.Xml.XmlNode filter; filter = _document.CreateElement("filter"); element = _document.CreateElement("name"); element.InnerText = es

我对在Java中使用XPath非常陌生,我不懂C

在这段时间里,我不得不将一些使用XPath的C方法转换成Java方法,对此我有些怀疑

在C方法中,我发现了以下代码行:

System.Xml.XmlNode element;
System.Xml.XmlNode filter;

filter = _document.CreateElement("filter");
element = _document.CreateElement("name");
element.InnerText = es.Descrizione;
filter.AppendChild(element);
我正在尝试将其转换为Java代码

我认为前两行可以翻译为:

Element element;
Element filter;
这是一个简单的Jdom元素对象声明

但我对如何用Java翻译这些行有很多疑问:

filter = _document.CreateElement("filter");
element = _document.CreateElement("name");

filter.AppendChild(element);
你能帮我吗

Tnx


Andrea

Java的等价物如下:

import javax.xml.parsers.*;
import org.w3c.dom.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        Element element;                            // System.Xml.XmlNode element;
        Element filter;                             // System.Xml.XmlNode filter;

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();

        Document _document = db.newDocument();
        filter = _document.createElement("filter"); // filter = _document.CreateElement("filter");
        element = _document.createElement("name");  // element = _document.CreateElement("name");
        element.setTextContent(es.Descrizione);     // element.InnerText = es.Descrizione;
        filter.appendChild(element);                // filter.AppendChild(element);
        _document.appendChild(filter);
    }

}

你为什么提到XPath?我看不出它有什么用处。如果您想继续使用domapi,那么即使在Java中也可以使用,并且您的代码将是

import org.w3c.dom;


Element element;
Element filter;

filter = _document.createElement("filter");
element = _document.createElement("name");
element.setTextContent(es.Descrizione);
filter.appendChild(element);

如果您想使用JDOM,则需要更改方法,而不是使用基于DOM的工厂方法,如document.createElement。。您只需使用诸如newelement之类的构造函数方法…

mmm我正在导入org.jdom.*包,而不是org.w3c.dom,我不知道这是同一件事。顺便说一句,我正试图做一些你建议我做的事情,但无法工作,我必须做:Document Document=new Document;过滤器=document.createElementfilter;但是现在Eclipse告诉我以下错误消息:类型文档的方法createElementString未定义为什么?@AndreaNobili、W3C DOM和JDOM是不同的对象模型,您需要决定要使用哪个对象模型。您似乎在Java中使用JDOM,但当您试图使用.NET中的DOM转换C代码时,在Java中使用DOM可能也会更容易。这是你的选择。如果您选择JDOM,那么当然必须使用JDOMAPI。文档中的所有createXXX方法都是W3CDOM的一部分,JDOM故意使用不同的方法,并提供诸如new Element之类的构造函数方法。。来构造元素节点。因此,决定要使用哪个对象模型和哪个API。它只使用DOM方法。其次,在Java中,您可以选择树模型:DOM、JDOM、XOM、DOM4J。您已经暗示要使用JDOM,这可能是一个很好的选择,但您会得到令人困惑的答案,因为您还没有真正弄清楚这一点。