Java 遍历(读取)静态DOM文档对象是否是线程安全的?

Java 遍历(读取)静态DOM文档对象是否是线程安全的?,java,dom,xml-parsing,thread-safety,Java,Dom,Xml Parsing,Thread Safety,我创建了一个DOM文档静态对象,如下所示,它使用javax.xml.parsers.*和org.w3c.DOM.*API: DocumentBuilderFactory docBldrFactry = DocumentBuilderFactory.newInstance(); docBldrObj = docBldrFactry.newDocumentBuilder(); File file = new File(fileDirectory);

我创建了一个DOM文档静态对象,如下所示,它使用javax.xml.parsers.*和org.w3c.DOM.*API:

        DocumentBuilderFactory docBldrFactry = DocumentBuilderFactory.newInstance();
        docBldrObj = docBldrFactry.newDocumentBuilder();

        File file = new File(fileDirectory);
        // Parse the XML file and return a DOM document object

        document = docBldrObj.parse(file);
        //FYI, document is declared as private static org.w3c.dom.Document document elsewhere. 
在上面创建之后,如果这个静态DOM文档对象由线程共享,但所有线程都只是读取(遍历)这个文档,那么它是线程安全的吗

我认为这是因为read不应该修改这个共享状态,但我不确定它内部是否有一些我不知道的魔力


谢谢

通过编写自己的简单文档结构解决了这个问题。例如,将DOM文档克隆到该文档中,该文档在读取操作时是线程安全的。
仅供参考,出于我自己的目的,在克隆文档时,除了根据需要(注释节点、文本节点、元素节点、属性)克隆信息外,我不会克隆所有内容。

Damm。。。正如我所尝试的那样,似乎不是。。一些看起来是只读的API(如getNodeValue())修改了状态。如果我只读取(遍历)文档,有人知道线程安全的XML库吗?