Tag: xml

SimpleXML无缘无故地抛出XmlPullParserException,未终止的实体ref

关于问题可能是什么我没有想法..我在Android上使用SimpleXML,它抛出了以下堆栈跟踪: 06-08 13:20:56.450: E/AndroidRuntime(2281): FATAL EXCEPTION: main 06-08 13:20:56.450: E/AndroidRuntime(2281): java.lang.RuntimeException: org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:TEXT ????T???????????????…@21:133 in java.io.BufferedReader@b6438630) 06-08 13:20:56.450: E/AndroidRuntime(2281): at com.example.stuff.manager.LevelManager.(LevelManager.java:32) 06-08 13:20:56.450: E/AndroidRuntime(2281): at com.example.stuff.fragment.MainMenuFragment.onClick(MainMenuFragment.java:138) 06-08 13:20:56.450: E/AndroidRuntime(2281): at android.view.View.performClick(View.java:2485) 06-08 13:20:56.450: E/AndroidRuntime(2281): at android.view.View$PerformClick.run(View.java:9080) 06-08 13:20:56.450: E/AndroidRuntime(2281): at android.os.Handler.handleCallback(Handler.java:587) 06-08 13:20:56.450: E/AndroidRuntime(2281): at android.os.Handler.dispatchMessage(Handler.java:92) 06-08 13:20:56.450: E/AndroidRuntime(2281): at android.os.Looper.loop(Looper.java:130) 06-08 […]

在哪里可以找到Java XML框架的详细比较?

我正在尝试为我的Java项目选择一个XML处理框架,我迷失了名字…… XOM,JDOM等。在哪里可以找到所有流行的Java XML框架的详细比较?

使用Java和UTF-8编码生成有效的XML

我正在使用JAXP生成和解析XML文档,从该文档从数据库加载一些字段。 用于序列化XML的代码: DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement(“test”); root.setAttribute(“version”, text); doc.appendChild(root); DOMSource domSource = new DOMSource(doc); TransformerFactory tFactory = TransformerFactory.newInstance(); FileWriter out = new FileWriter(“test.xml”); Transformer transformer = tFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, “yes”); transformer.setOutputProperty(OutputKeys.ENCODING, “UTF-8”); transformer.transform(domSource, new StreamResult(out)); 解析XML的代码: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = […]

在不使用NamespacePrefixMapper的情况下定义Spring JAXB名称空间

[根据理解进展重编辑] 是否有可能让Spring Jaxb2Marshaller使用一组自定义的命名空间前缀(或者至少尊重模式文件/注释中给出的名称空间前缀),而不必使用NamespacePrefixMapper的扩展名? 我们的想法是让一个类与另一个类具有“has”关系,而另一个类又包含具有不同命名空间的属性。 为了更好地说明这一点,请考虑以下使用JDK1.6.0_12的项目大纲(最新的我可以在工作中得到)。 我在org.example.domain包中有以下内容: Main.java: package org.example.domain; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; public class Main { public static void main(String[] args) throws JAXBException { JAXBContext jc = JAXBContext.newInstance(RootElement.class); RootElement re = new RootElement(); re.childElementWithXlink = new ChildElementWithXlink(); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(re, System.out); } } RootElement.java: package org.example.domain; import javax.xml.bind.annotation.XmlElement; […]

Groovy:使用JAX-B对象的特定属性创建一个Map

我有一个示例LEDES XML文件https://codebeautify.org/xmlviewer/cbdc79e7 使用JDK的xjc生成Ledesxmlebilling21类,如下所示和Ledes21.xsd模式https://codebeautify.org/xmlviewer/cb974a2e xjc -d src ledes21.xsd 我正在使用JAX-B将XML转换为Java对象,如下所示 Ledesxmlebilling21 XMLtoObject(InputStream fis) throws Exception { JAXBContext context = JAXBContext.newInstance(Ledesxmlebilling21.class) Unmarshaller um = context.createUnmarshaller() Ledesxmlebilling21 ledes = (Ledesxmlebilling21) um.unmarshal(fis) return ledes } 我正在尝试使用Invoice对象的invId属性值创建一个Map作为Key,并将值作为所有Invoice对象的嵌套属性的fileItemNbr值列表,如下所示 [‘Invoice 31’ : [10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33] ‘Invoice 32’ : [50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73] ] 有人可以帮我吗? 更新解决方案 def extractFileItemNbr(input, List extracted) { input.properties.each { prop, val -> //LedesXmlRuleProcessor.groovy:82) if (prop […]

JAXB过滤了解析

我正在使用JAXB来解析基于GWT的应用程序中的XML文件。 XML看起来像这样(一个简化的例子): … … … … … … … … … … … … … … 我已经定义了类,如下所示: @XmlRootElement(name=”addressbook”) public class Addressbook implements Serializable { private ArrayList companyList = new ArrayList(); public Addressbook() { } @XmlElement(name = “company”) public ArrayList getCompanyList() { return companyList; } } ============================= @XmlRootElement(name=”company”) public class Company implements Serializable { private String […]

使用Java中的命名空间创建XML文档

我正在寻找可以构造使用命名空间的XML文档的示例Java代码。 我似乎无法使用我喜欢的常用工具找到任何东西,所以希望有人可以帮助我。

从xml节点获取行号 – java

我已经解析了一个XML文件,并且得到了一个我感兴趣的节点。我现在如何在源XML文件中找到此节点出现的行号? 编辑:目前我正在使用SAXParser来解析我的XML。 但是我会对使用任何解析器的解决方案感到满意。 与Node一起,我也有节点的XPath表达式。 我需要获取行号,因为我在文本框中显示XML文件,并需要突出显示节点发生的行。 假设XML文件的格式很好,并且有足够的换行符。

SAX解析器可以在Java中使用XPath吗?

我正在尝试迁移我的一个类,它使用带有大量XPath表达式的DOM解析来进行SAX解析。 DOM解析对我来说很好,但是我尝试解析的一些文件太大而导致服务器超时。 我想重用XPath与SAX解析,但我不确定是否可能,如果不可能,请你帮助我,因为我不知道当我只使用SAX时,以下代码将如何: Document doc = bpsXml.getDocument(); String supplierName = BPSXMLUtils.getXpathString(doc, “/Invoice/InvoiceHeader/Party[@stdValue=’SU’]/Name/Name1”); String language = BPSXMLUtils.getXpathString(doc, “/Invoice/InvoiceHeader/InvoiceLanguage/@stdValue”);

在java中解析非常大的XML文档(以及更多)

(以下所有内容均以Java编写) 我必须构建一个应用程序,将可能非常大的XML文档作为输入。 该文档是加密的 – 不是使用XMLsec,而是使用我客户的预先存在的加密算法 – 将分三个阶段进行处理: 首先,根据上述算法解密流。 其次,扩展类(由我提供的API的第三方编写)将读取文件的某些部分。 读取的数量是不可预测的 – 特别是它不能保证在文件的标题中,但可能出现在XML中的任何位置。 最后,另一个扩展类(相同的交易)将输入XML细分为1..n子集文档。 这些可能会在某些方面与第二个操作处理的文档部分重叠,即:我相信我需要回顾我用来处理这个对象的任何机制。 这是我的问题: 有没有办法在没有一次将整个数据读入内存的情况下执行此操作? 显然我可以将解密实现为输入流filter,但我不确定是否可以按照我描述的方式解析XML; 通过遍历,需要收集第二步的信息,然后通过倒回文档并再次传递它以将其拆分为作业,理想情况下释放文档的所有不再使用的部分他们已经过去了。