jjzjj

java - StAX - 使用 XMLStreamWriter 设置版本和编码

我使用StAX创建XML文件,然后使用XSD验证文件。我在创建XML文件时遇到错误:javax.xml.stream.XMLStreamException:Underlyingstreamencoding'Cp1252'andinputparamterforwriteStartDocument()method'UTF-8'donotmatch.atcom.sun.xml.internal.stream.writers.XMLStreamWriterImpl.writeStartDocument(XMLStreamWriterImpl.java:1182)这是代码片段:XMLOutput

Java:IndentingXMLStreamWriter 替代方案?

我正在使用StAX创建一个相当大的xml文档。到目前为止,我一直在使用IndentingXMLStreamwriter类来获取格式正确的文档(另请参见thisanswer)。几天前,我们使用较旧的jdk版本(6.26)设置了一个jenkins服务器,在该服务器上我遇到了构建错误。packagecom.sun.xml.internal.txw2.outputdoesnotexist我假设由于安装的jdk版本而找不到包。由于不同的原因,这不能改变(顺便说一句,有谁知道添加这个包(com.sun.xml.internal.txw2.output)的jdk版本?因此,我正在寻找一种替代方法来进

java - 使用 javax.xml.stream.XMLStreamReader 时如何启用非 IANA 编码

我正在使用javax.xml.stream.XMLStreamReader来解析XML文档。不幸的是,我正在解析的一些文档使用非IANA编码名称,例如“macroman”和“ms-ansi”。例如:这会导致解析失败并出现异常:javax.xml.stream.XMLStreamException:ParseErrorat[row,col]:[1,42]Message:Invalidencodingname"macroman".有什么方法可以为我的XMLStreamReader提供自定义编码处理程序,以便我可以通过支持我需要的编码来增强它? 最佳答案

java - XMLStreamWriter - Java 8 - 写字符 -

这个方法的行为似乎在Java8中发生了变化。我需要一些快速修复来解决我的问题。问题是我有一些代码在每个名为的XML节点之后写入CR和LF。.现在(当我们迁移到Java8时),字符 代替了CR和LF。被写出来。同样,我需要快速修复,我不能更改StaX实现或做任何类似的大事。while(reader.hasNext()){event=reader.next();if(event==XMLStreamConstants.START_ELEMENT){if(reader.getLocalName().equals("row")){writer.writeCharacters("\r\n

java - 使用 JAXB 和 Stax 对 XML 文档进行验证

我已经创建了一个XML模式(foo.xsd)并使用xjc为JAXB创建了我的绑定(bind)类。假设根元素是collection,我正在编写N个复杂类型的document对象。因为我打算写出大型XML文件,所以我使用Stax写出collection根元素,并使用JAXB使用Marshaller.marshal(JAXBElement,XMLEventWriter)编码文档子树。这是jaxb'sunofficialuser'sguide推荐的方法.我的问题是,如何在编码XML时对其进行验证?如果我将模式绑定(bind)到JAXB编码器(使用Marshaller.setSchema()),

java - 为什么 StAX 读写器不关闭底层输入源?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion根据StAXXMLEventReader、XMLEventWriter、XMLStreamReader、XMLStreamWriterAPIclose()方法不会关闭底层资源。因此这段代码XMLInputFactoryxf=XMLInputFactory.newInstance();XMLStreamReaderxr=xf.createXMLStreamReader(newFileInpu

java - StAX XML 两个必需标签之间的所有内容

开始学习StAX,使用XMLStreamReader,我遇到了一些问题。如何将标签之间的所有内容作为文本获取?我的意思是,我知道所需标签的名称,当我找到它时,我必须转到关闭标签,我必须在它们之间找到的所有内容附加到某个字符串。例如,我们有类似的东西...Sometextcontentandothertagshere…Sometextcontent.....Somethinghere.........所以,我需要把我的字符串作为Sometextcontent.....Somethinghere我怎样才能得到它?也许,我必须在源xml中找到所需block的开始和结束偏移量,并在解析后给出子

java - 如何通过 StAX 修改一个巨大的 XML 文件?

我有一个巨大的XML(~2GB),我需要添加新元素并修改旧元素。例如,我有:...........并且想要得到:...........我使用了以下代码:XMLInputFactoryinFactory=XMLInputFactory.newInstance();XMLEventReadereventReader=inFactory.createXMLEventReader(newFileInputStream(file));XMLOutputFactoryfactory=XMLOutputFactory.newInstance();XMLStreamWriterwriter=facto

java - 如何在 CDATA 之外编写未转义的 XML

我正在尝试使用内容本身为HTML的Stax编写XML数据如果我尝试xtw.writeStartElement("contents");xtw.writeCharacters("here");xtw.writeEndElement();我明白了<b>here</b>然后我注意到CDATA方法并将我的代码更改为:xtw.writeStartElement("contents");xtw.writeCData("here");xtw.writeEndElement();这次的结果是here]]>还是不好。我真正想要的是here那么是否有一个XMLAPI/库允许我在不在

java - 找不到请求的工厂 com.ctc.wstx.stax.WstxInputFactory

我正在构建OracleAgilePLMCustomActionPx。我在Px中调用了一个网络服务来处理一些数据。在我部署之后,它为javax.xml.ws.Service提供了“Classnotfoundexception”所以我将jaxws-api-2.1-1.jar复制到\Agile\Agile931\integration\sdk\extensions文件夹中。在此之后,此错误消失了。类似地,我复制了一些其他jar以删除其他类的“类未找到异常”。但现在我不知道如何消除这个错误:Requestedfactorycom.ctc.wstx.stax.WstxInputFactoryca