草庐IT

java - DocumentBuilder 解析在命中 '&' 时中断字符串

我有这个xml:H&M我使用这段代码解析它:DocumentBuilderdocumentBuilder=null;Documentdocument=null;try{documentBuilder=DocumentBuilderFactory.newInstance().newDocumentBuilder();document=documentBuilder.parse(is);}catch(Exceptione){returnresult;}NodeListnl=document.getElementsByTagName(XML_RESPONSE_ROOT);if(nl.

python - 在 Python 中使用&符号修复无效的 XML

我正在使用Python来操作从另一个系统接收到的XML文件。该系统生成无效的XML。主要是,它不会转义XML中的某些&。因此,例如,我有一些这样的行:Ben&Jerry当然,当使用SAX或DOM进行解析时,它会抛出无效token错误。对于一些更一般的背景-它是一个非常大的文件(2MB),相当平坦,并且在CDATA中包含大量数据。我尝试过的:编写一个Regex只替换未转义的&,而不转义>诸如此类:&(?!\w{2,4};)。它修复了它,但它在CDATA中转义了&符号,这随后导致目标系统出现错误。之后我无法对CDATA中的所有内容进行转义,因为其中一些需要保持转义状态。使用Beautifu

java - 文档 - 如何通过名称获取标签的值?

我正在使用Java的DOM解析器来解析XML文件。假设我有以下XMLip我想获取“endPoint”的值。我可以使用以下代码片段来完成。(假设我已经用DocumentBuilder解析了它)NodeListnodeList=this.doc.getElementByTagName("dotcms");NodenValue=(Node)nodeList.item(0);returnnValue.getNodeValue();是否可以通过字段名获取字段值?喜欢....NodenValue=nodeList.getByName("endPoint")像这样...?

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 - SAX 解析器可以在 Java 中使用 XPath 吗?

我正在尝试将我的一个使用DOM解析和大量XPath表达式的类迁移到SAX解析。DOM解析对我来说很好,但我尝试解析的一些文件太大,它们会导致服务器超时。我想将XPath与SAX解析重用,但我不确定是否可行,如果不可能,请您帮助我,因为我不知道如何以下代码将在我仅使用SAX时出现:Documentdoc=bpsXml.getDocument();StringsupplierName=BPSXMLUtils.getXpathString(doc,"/Invoice/InvoiceHeader/Party[@stdValue='SU']/Name/Name1");Stringlanguage

java - 如何使用 JDOM 通过其属性值获取元素?

我有一个如下所示的xml文件:http://www.mywebsite.com/admins?cat=writerhttp://www.mywebsite.com/admins?cat=editorhttp://www.mywebsite.com/users?cat=critichttp://www.mywebsite.com/users?cat=reviewerhttp://www.mywebsite.com/users?cat=reader如何使用Java中的JDOM库通过“名称”属性的值来选择“url”元素?有什么直接的方法,或者我必须选择所有子元素并使用“for”循环检查所需的

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 - 如何仅获取 ELEMENT_NODE 类型的子节点

我正在使用javaDOM解析一个xml文档,我需要获取每个节点来做某事。我有这个代码:publicvoidanalyze_file(Nodenode){if(node.getNodeType()!=Node.DOCUMENT_NODE){//dosomething}NodeListlist=node.getChildNodes();for(inti=0;i问题是,我的xml文件非常大(>30000行),上面的代码需要太多时间来检查节点是否属于ELEMENT_NODE类型与否。我看到如果程序在到达最后一个ELEMENT_NODE节点后停止,执行时间会非常短。有什么方法可以获取所有类型为E

java - 在保留 xsi :type 的同时合并文档

我有2个Document对象,其文档包含类似的XML。例如:还有一个:我需要将它们合并到具有1个根元素和4个子元素的1个文档中。问题是,如果我使用document.importNode函数进行合并,它会正确处理除xsi:type元素之外的所有namespace。所以我得到的结果是:如您所见,ns2在xsi:type中使用,但未在任何地方定义。有什么自动化的方法可以解决这个问题吗?谢谢。已添加:如果使用默认的JavaDOM库无法完成此任务,也许我可以使用其他一些库来完成我的任务? 最佳答案 如果我在您的第二个文件中修复了命名空间问题(