草庐IT

虚拟DOM

全部标签

java - 如何使用 Java DOM 克隆整个文档?

我正在寻找一种可靠的、独立于实现的方法来克隆整个文档。Javadocs特别指出在Document上调用cloneNode是特定于实现的。我已尝试通过无操作转换器传递文档,但生成的节点没有所有者文档。我可以创建一个新文档并从旧文档导入节点,但我担心可能会丢失一些文档元数据。将Document写入字符串并将其解析回来也是一样。有什么想法吗?顺便说一句,由于我无法控制的原因,我一直停留在Java1.4.2。 最佳答案 正如一些评论所指出的,序列化和重新解析文档存在问题。除了内存使用、性能考虑和规范化之外,还有序言(DTD或模式)的丢失、注

java - 有没有一种方法可以通过每个节点可用的行号通过 SAX/DOM 解析 XML

我已经为大型XML文档格式编写了一个DOM解析器,其中包含许多可用于自动生成Java代码的项目。这仅限于随后合并到动态生成的Java源文件中的小表达式。到目前为止-非常好。一切正常。但是-我希望能够嵌入包含Java代码的XML节点的行号(这样如果配置包含不可编译的代码,每个方法都会有一个指向源XML文档的指针和行便于调试的编号)。我在解析时不需要行号,也不需要验证XML源文档并在特定行号处抛出错误。我需要能够访问我的DOM或每个SAX事件中每个节点和属性的行号。关于我如何能够实现这一点有什么建议吗?附言另外,我读到StAX有一种在解析时获取行号的方法,但理想情况下,我希望在Java4/

xml - Hudson XML 错误——没有名为 dom.minidom 的模块

我正在尝试发送一个简单的XML文件,其格式在http://wiki.hudson-ci.org/display/HUDSON/Monitoring+external+jobs中给出。.我能够轻松发送它并得到想要的结果!!然后我尝试使用python脚本构建这个XML文件,它给了我我想要的确切文件,没有任何问题。但是,当我尝试运行它并将其发送给Hudson时,出现了错误-“Nomodulenameddom.minidom”。我通过在PythonIDLE中执行再次检查并且它工作正常但是当我尝试再次发送它时,我遇到了同样的错误..plzhelp.. 最佳答案

java - DOM getElementsByTagName() 返回具有 NULL 值的节点

我有一个XML文件如下。当我使用getElementsByTagName("LEVEL2_ID")时,我确实得到了一个带有Nodes的NodeList,但是那些节点有NULL值(在换句话说,每个结果节点上的getNodeValue()将返回NULL)。为什么是这样?我需要获取每个节点的内容值,在本例中为2000。XML:01/17/201210002000在Java中,打印通过getElementsByTagName()获得的第一个节点的Value返回NULL:NodeListnodes=document.getElementsByTagName("LEVEL2_ID");System

xml - XML 文件中的特殊字符 - 使用 DOM API 处理

我有一个XML格式的文件(仅由根开始和结束标记以及根的子项组成)。子元素的文本元素包含与符号&。在XML中不允许使用此符号以使文档有效,并且当我尝试使用Java中的DOMAPI和XML解析器处理文件时,我遇到了解析错误。因此,我将&替换为&,并成功处理了该文件:我必须提取不同纯文本文件中文本元素的值。当我打开这些新创建的文本文件时,我希望看到&,但是却出现了&。为什么是这样?我已将文本存储在没有任何扩展名的文本文件中(我的XML格式的原始文件也没有.xml扩展名),而且无论我如何打开文件,我在新文件的文本中都有&:作为txt或xml文件(这些是我的XML编辑器中的一些选项)。到底发生了

xml - 如何解析 XSLT 中 CDATA 元素内的 XML DOM?

假设我有一个像这样的XML文件:Sci-fi2]]>SomeBookSomeauthorAnotherBookAnotherauthor我想读取xslt转换器中的CDATA元素“名称”,并将其值放在标记值中的某处。我该怎么做呢?AFAIK,我们不能对CDATA的内容使用xpath。是否有一些破解/解决方法?我想在XSLT中严格执行此操作。 最佳答案 某些XSLT产品具有扩展功能,例如saxon:parse(),它允许您获取包含词汇XML的字符串并将其转换为节点树。 关于xml-如何解析X

java - 如何更改 DOM 中每个节点上的命名空间?

给定一个w3cDOM(特别是Java的默认实现),我如何更改该DOM中每个元素/属性/节点的namespace?高效,最好。DOM上似乎没有setNamespaceURI方法,这很不方便。我尝试过XSL方法,但它们在JAXP转换器中无法工作(尽管它们在Saxon9B中工作正常,但由于各种其他原因我无法使用)。基本上,我需要一个纯核心java解决方案,它允许我获取一个文档并更改其命名空间。 最佳答案 这在命名空间感知的DOM上效率不高。您将不得不使用DOMLevel3Core方法Document.renameNode(javadoc)

java - 使用 Jackson XmlMapper 序列化为 XML DOM

我知道可以使用XmlMapper.writeValueAsString()直接序列化为字符串,但我想序列化DOM树。一个新文档,或者最好直接序列化到现有的DOM节点。这可以用Jackson来完成吗? 最佳答案 我想我通过使用XMLStreamWriter找到了解决方案。尝试以下代码段:XMLOutputFactoryfactory=XMLOutputFactory.newInstance();factory.createXMLStreamWriter(newDOMResult(yourNode));XmlMappermapper=n

javascript - 按名称访问 XML DOM 子节点

我想在JavaScript中访问XML对象的textContent属性。根项目有几个child,他们自己也有一些child。为了让children进入第一层,我只是遍历了根元素的childNodes数组。但是为了获得“孙子”的值,我想使用类似getElementsByTagName()的方法,但它不起作用。目前我只是再次遍历所有子项并检查每个子项的nodeName属性以获取我的值。有没有办法通过名称获取子对象?XML(注意:我内部获取的XML文档是未格式化的,没有空格,没有#text节点):contentcontentcontentcontentcontentcontent到目前为止我

Python:xml.dom.minidom 空 nodeValue 非空 toxml() 值

我有一行获取节点的节点值:parent.getElementsByTagName("Url")[0].nodeValue什么都不返回:当我这样做时:parent.getElementsByTagName("Url")[0].toxml()它返回:www.something.com我不确定这里发生了什么。另一个数据点:当我执行nodeName而不是nodeValue时,它​​会按预期返回Url。有什么想法吗? 最佳答案 试试这个:parent.getElementsByTagName('Url')[0].childNodes[0].n