草庐IT

NT-DOM-NV

全部标签

java - 使用 Java 中的自定义对象实现将 XML 解析为 DOM 树

我想将XML文档解析为Java中的DOM树,这样某些对象(例如org.w3c.dom.Node或org.w3c.dom.Element)可以向下转换为我创建的类的实例,同时最大限度地减少我需要(重新)实现的XML相关代码的数量。作为一个(非常简单的)示例,如果我有一个XML元素,例如:1.0-1.03.0-2.73e2我想自定义解析器来为其实例化以下内容:publicclassVectorextends/*someparserclass*/{privatedouble[]elements;/*constructors;etc.*/publicdoubledotProduct(Vecto

python - 获取 XML 文档的 DOM 树

有谁知道我如何在Python中获取XML文件的DOM实例(树)。我正在尝试将两个XML文档相互比较,它们可能具有不同顺序的元素和属性。我该怎么做? 最佳答案 就个人而言,只要有可能,我都会从elementtree开始(最好是Python标准库附带的C实现,或lxml实现,但这本质上只是速度更快的问题)。它不是符合标准的DOM,但以更Pythonic和更方便的方式保存相同的信息。您可以从调用xml.etree.ElementTree.parse开始,它获取XML源并返回一个元素树;在两个源上执行此操作,在每个元素树上使用getroot

python - Python xml.dom 中的非递归(单节点级别)getElementsByTagName

有没有办法只在单个节点级别而不是递归地使用getElementsByTagName?例如考虑解析一个pom.xml文件:com.parentparent1.0-SNAPSHOT../pom.xml2.0.0com.parent.somemodulesome_modulejar1.0-SNAPSHOTSomeModule...如果我想在顶层获取groupId(特别是project->groupId,而不是project->parent->groupId),我使用:xmldoc=minidom.parse('pom.xml')groupId=xmldoc.getElementsByTagN

java - 如何通过 validator 获取有关无效 DOM 元素的更多信息?

我正在使用javax.xml.validation.Validator类针对XSD模式验证内存中的DOM对象。每当我从中填充DOM的信息中存在一些数据损坏时,我就会在验证过程中抛出SAXParseException。错误示例:org.xml.SAXParseException:cvc-datatype-valid.1.2.1:'???"??[?????G?>???p~tn??~0?1]'isnotavalidvaludfor'hexBinary'.我希望有一种方法可以在我的内存DOM中找到此错误的位置,并打印出有问题的元素及其父元素。我当前的代码是:publicvoidwriteDoc

java - 如何使用 DOM 转义特殊字符

这个问题最近一直困扰着我,我似乎无法找到可能的解决方案。我正在处理一个接收XML文档以进行某些处理的网络服务器。服务器的解析器存在&、'、"、问题。我知道这很糟糕,我没有在该服务器上实现xml解析器。但在等待补丁之前,我需要规避。现在,在将我的XML文档上传到此服务器之前,我需要解析它并转义xml特殊字符。我目前正在使用DOM。问题是,如果我遍历TEXT_NODES并将所有特殊字符替换为其转义版本,当我保存此文档时,对于d'ex我得到d'ex但我需要d'ex这是有道理的,因为DOM对“&”进行了转义。但显然这不是我需要的。所以如果DOM已经能够将"&"转义为"&"我怎样才能让

java - 使用 Java 的 DOM XML API 解析 XML 中的 & 符号

我正在尝试使用JavaDOMAPI(而非SAX)解析XML文档。每当解析器在解析文本节点时遇到与号(&),它就会出错。我猜这可以通过1)转义、2)编码或3)使用不同的解析器来解决。我正在阅读一个我无法控制的XML文档,因此我无法在每次阅读时准确地识别&符号在文档中出现的位置。我看到的类似问题的答案建议在解析XML时替换实体类型,但我不确定我将如何做到这一点,因为它在遇到XML符号时甚至不解析。任何帮助将不胜感激。 最佳答案 如前所述,XML格式不正确(糟糕!):XML中所有出现的&(引入字符实体[?]的标记除外)都必须编码为&。一些

java - 在 Java 中将元素(org.w3c.dom)转换为字符串

我在将Element对象转换为String时遇到了一个小问题。因为我需要将一个字符串传递给特定的方法。我试过使用.toString()或使用分配给它的String变量。没有一个试验是正确的。我们怎样才能轻松转换,并且字符串对象也应该显示与Element显示的完全相同的XML结构。Elementelement=(Element)xmlList.item(i);上面的“元素”对象以XML格式显示。我想将相同的字符串转换为XML格式 最佳答案 试试这个需要的包:importjavax.xml.transform.Transformer;i

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.. 最佳答案