相关疑难解决方法(0)

加速xpath

我有一个1000条目文档,其格式类似于

<Example>
     <Entry>
          <n1></n1>
          <n2></n2>
      </Entry>
      <Entry>
          <n1></n1>
          <n2></n2>
      </Entry>
      <!--and so on-->
Run Code Online (Sandbox Code Playgroud)

这里有超过1000个Entry节点.我正在编写一个Java程序,它基本上逐个获取所有节点并对每个节点进行一些分析.但问题是节点的检索时间随着它的增加而增加.例如,检索第一个节点100毫秒以检索第二个节点需要78毫秒,并且它继续增加.要检索999节点,需要5秒以上.这非常慢.我们将此代码插入到包含超过1000个条目的XML文件中.有些像数百万.解析整个文档的总时间超过5分钟.

我正在使用这个简单的代码来遍历它.这nxp是我自己的类,它具有从xpath获取节点的所有方法.

nxp.fromXpathToNode("/Example/Entry" + "[" + i  + "]", doc);    
Run Code Online (Sandbox Code Playgroud)

并且doc是该文件的文档.i是要检索的节点的否.

当我尝试这样的事情时

List<Node> nl = nxp.fromXpathToNodes("/Example/Entry",doc);  
      content = nl.get(i);    
Run Code Online (Sandbox Code Playgroud)

我面临同样的问题.

任何人都有关于如何加速节点的tretirival的任何解决方案,因此从XML文件获取第一个节点以及1000个节点需要相同的时间.

谢谢


这是xpathtonode的代码.

public Node fromXpathToNode(String expression, Node context)  
{  
    try  
    {  
        return (Node)this.getCachedExpression(expression).evaluate(context, XPathConstants.NODE);  
    }  
    catch (Exception cause)  
    {  
        throw new RuntimeException(cause);  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

这是fromxpathtonodes的代码.

public List<Node> fromXpathToNodes(String expression, Node context)  
{  
    List<Node> nodes = new ArrayList<Node>();  
    NodeList results = …
Run Code Online (Sandbox Code Playgroud)

java performance xpath nodelist nodes

18
推荐指数
3
解决办法
2万
查看次数

使用nodeList创建XML文档

我需要使用NodeList创建一个XML Document对象.有人可以帮我做这件事.我已经向您展示了下面的代码和xml

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

public class ReadFile {

    public static void main(String[] args) {
        String exp = "/configs/markets";
        String path = "testConfig.xml";
        try {
            Document xmlDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(path);
            XPath xPath = XPathFactory.newInstance().newXPath();
            XPathExpression xPathExpression = xPath.compile(exp);
            NodeList nodes = (NodeList)
              xPathExpression.evaluate(xmlDocument,
                                       XPathConstants.NODESET);

        } catch (Exception ex) {
            ex.printStackTrace();
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

xml文件如下所示

<configs>
    <markets>   
        <market>
            <name>Real</name>
        </market>
        <market>
            <name>play</name>
        </market>
    </markets>
</configs>
Run Code Online (Sandbox Code Playgroud)

提前致谢..

java xml dom backend nodelist

6
推荐指数
1
解决办法
4万
查看次数

在Java中将Element(org.w3c.dom)转换为String

我有一个将Element对象转换为String的小问题.因为我需要将一个字符串传递给特定方法.我尝试过使用.toString()或使用分配给它的String变量.没有一项试验是正确的.我们如何轻松转换,字符串对象也应该显示为Element显示的确切XML结构.

Element element = (Element) xmlList.item(i);
Run Code Online (Sandbox Code Playgroud)

上面的"元素"对象以XML格式显示.我想在XML格式的String中转换相同的内容

java xml element

5
推荐指数
2
解决办法
8300
查看次数

标签 统计

java ×3

nodelist ×2

xml ×2

backend ×1

dom ×1

element ×1

nodes ×1

performance ×1

xpath ×1