jjzjj

XML/XSLT/Xpath 标准合规性

我们的商店开发了多个核心产品和客户特定实现的构建平台。该平台已经存在了5年,现在我们正在尝试重新思考/重新平台化。作为平台所有者,以下是我计划遵守的几项关键原则尽可能接近JavaEE规范限制或消除对第3方库使契约(Contract)明确平台组件,如果可能的话然后制作为osgi兼容包符合标准(对于非JavaEE的东西)因此我们非常依赖JAXP和XSLT进行转换。当我们在不同供应商的应用程序服务器以及来自同一供应商的不同版本的应用程序服务器上部署时,我们经常遇到XSLT样式表问题。大多数时候问题是在XSLT中使用解析器实现特定内容在应用程序中捆绑解析器实现将XSLT2.0/XPath2.0

java - 从 XML 中删除空属性

我有一个包含空属性的有问题的xml,我有一个解析器在处理空属性时会报错。我无法控制xml的生成,也无法控制在空属性上咳嗽的解析器。所以我想做的是简单地删除所有空属性的预处理步骤。我设法找到了空属性,但现在我不知道如何删除它们:XPathFactoryxpf=XPathFactory.newInstance();XPathxpath=xpf.newXPath();XPathExpressionexpr=xpath.compile("//@*");Objectresult=expr.evaluate(d,XPathConstants.NODESET);if(result!=null){No

java - 优化 DOM 和 XPath Java 代码

我的代码太慢了,但我不确定如何改进它。将一个1k文件从磁盘读入DOM大约需要20毫秒,这可能没问题,具体取决于磁盘,但是我还有另外20毫秒用于处理xpath语句,这太多了。这是一些带有时间注释的示例代码。我怎样才能改进代码?这发生在构建时:DocumentBuilderFactorydbFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdBuilder=this.dbFactory.newDocumentBuilder();XPathExpression[]ex=newXPathExpression[]{about3

java附加到文件

我在谷歌上搜索了一段时间,但似乎找不到它,应该很容易找到。我想将一个CR附加到我使用Transformer创建的XML文件的末尾。有没有办法做到这一点>我尝试了以下操作,但结果是一个空白文件?Transformerxformer=TransformerFactory.newInstance().newTransformer();xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"file:///ReportWiz.dtd");xformer.transform(source,result);OutputStreamwriter=ne

java - XPath 从多个节点获取文本

我需要创建一个StringArray,其名称文本来自:...如何查询“xyz”、“bla”以及更多这些?可能是您见过的最糟糕的代码,但无论如何:NodeListresult1=(NodeList)xPath.evaluate("//@name",example,XPathConstants.NODESET);for(inti=0;iliste;liste=newArrayList(result1.getLength());for(inti=0;i感谢您的帮助,以这种方式工作:(以防万一..如果有人在这里寻找解决方案)NodeListresult=(NodeList)xPath.eval

java - JAXP 可以用来创建 HTML5 文档吗?

HTML5规范中是否存在无法使用JAXP等XML库创建的元素?一个例子是未在XML中定义的命名HTML实体。还有其他不兼容的地方吗? 最佳答案 JAXP显然只适用于格式良好的XML。在将其置于JAXP的标准解析器之前,您需要将HTML转换为XHTML。//CreateTransformerTransformerFactorytf=TransformerFactory.newInstance();StreamSourcexslt=newStreamSource("src/blog/jaxbsource/xslt/stylesheet.

java - 如何从 XML 文档中删除/删除 DOCTYPE 声明?

如何使用JAVA中的DOM解析器或SAX解析器从XML文档中移除/删除DOCTYPE声明?如果你想知道的东西不见了。只需在您的评论中提及即可。谢谢 最佳答案 这似乎做你想做的事:try{XMLInputFactoryinFactory=XMLInputFactory.newFactory();XMLOutputFactoryoutFactory=XMLOutputFactory.newFactory();XMLEventReaderinput=inFactory.createXMLEventReader(newFileInputSt

java - JAXP XSLT document()函数问题

我在使用XSLT转换的Java应用程序下工作。我在其中有很多document()调用,所以可能有java.lang.OutOfMemory异常(我实际上有),因为在每次调用document()函数后,文档都会被缓存。在http://xml.apache.org/xalan-j/faq.html#faq-N102F9我读到有可能增加堆内存大小,这不是我的解决方案。我还尝试使用似乎不受支持的增量转换。那么,在使用document()函数时是否可以关闭jaxp中的文档缓存? 最佳答案 喜欢user1066037的回答,希望你可以切换到Sa

java - 自定义 Java XMLBuilder 与基于标准类的对比

什么是生成XML的最佳性能解决方案。我的目标是从代码构建一些简单的XML。我将实现基于XMLBuilder的简单自定义StringBuffer实现。从另一边有几个库,如http://code.google.com/p/java-xmlbuilder/和http://code.google.com/p/xmltool/它有不错的DSL,但我想性能欠佳。由于我的目标是构建足够简单且性能出色的XMLBuilder,我想我会构建自定义解决方案。它将具有:用于XML构造的基于Java的出色DSL(基本上添加标签)出色的基于StringBuffer的性能。添加XML标签时的字符串数据转义处理。自动

java - 我需要解析格式不正确的 xml 数据 (HTML)

我在JAVA中有一些格式不正确的xml(HTML)数据,我使用了JAXPDom,但它提示。TheQuestionis:IsthereanywaytouseJAXPtoparsesuchdocuments??我有一个包含如下数据的文件: 最佳答案 您可以先尝试通过jtidyAPI运行您的文档-它能够将html转换为有效的xhtml:http://jtidy.sourceforge.net/howto.htmlTidytidy=newTidy();tidy.setXHTML(true);tidy.parse(......)...