草庐IT

java: 从 xml 中删除 cdata 标签

xpath很适合解析xml文件,但它不适用于cdata标签内的数据:moretextandtags...]]>我的解决方案:先获取xml的内容,然后去掉"".之后,我将运行xpath从xml文件“获取所有内容”。有更好的解决方案吗?如果没有,我该如何使用正则表达式来实现? 最佳答案 使用CDATA标签的原因是它们里面的所有内容都是纯文本,没有任何东西应该直接解释为XML。您可以将问题中的文档片段写为SomeText<p>moretextandtags</p>...(带有前导和尾随空格)。如果您真的想将其解释为

java - 使用 XSLFO 显示 SVG

我的第一个问题;我目前正在修复一个图形服务,该服务使用XSLFO将我们的语法转换为FO,并最终将其转换为PDF。以前我们一直在PDF导出中使用来自网络的PNG图形,但这会产生非常难看的结果,因此我们决定改为使用SVG导出PDF。但是,SVG似乎无法正确缩放到SVGCanvas中。这是运行XSLFO之前的语法:这是我正在使用的XSLFO:SVG确实出现在PDF中,而且它似乎包含在Canvas中-但无论出于何种原因,我都无法正确缩放它。它真的非常非常大,结果是SVG的极度裁剪版本。我在这里的建议用完了-这里有没有人有这方面的经验?PS:图片使用最新版Batik制作,宽高设置合理。

java - 将文档作为参数传递给 Java 中的 XSL 翻译

我正在为我的XSL添加国际化。我见过很多创建dictionary.xml文件并通过document('dictionary.xml')将其加载到我的XSL中的示例。我想做类似的事情,但我不想在磁盘上创建和存储dictionary.xml文件,我宁愿在服务器启动时从SQL构建它,并将Document对象保存在Java的内存中。然后我想将字典文档作为参数传递给转换器,以便我的XSL翻译函数可以使用它。但是,它似乎不起作用。相关Java代码:Documentdictionary=TranslationDictionary.getDictionaryDocument();transformer

java - 由于 xsl :include 导致转换失败

我有一个包含XSLT转换的Javamaven项目。我按如下方式加载样式表:TransformerFactorytFactory=TransformerFactory.newInstance();DocumentBuilderFactorydFactory=DocumentBuilderFactory.newInstance();dFactory.setNamespaceAware(true);DocumentBuilderdBuilder=dFactory.newDocumentBuilder();ClassLoadercl=this.getClass().getClassLoader

java - 使用 Java 将补充的 unicode 字符序列化为 XML 文档

我正在尝试使用U+1D49C(?,数学脚本大写A)等补充unicode字符序列化DOM文档。创建具有这样一个字符的节点不是问题(我只是将节点值设置为UTF-16等效值,“\uD835\uDC9C”)。但是,在序列化时,Xalan和XSLTC(带有Transformer)和Xerces(带有LSSerializer)都会创建无效的字符实体,例如“?”而不是“𝒜”。我尝试了LSSerializer的“normalize-characters”参数,但它不受支持。只有Saxon正确,当编码为un​​icode时不使用字符实体。我无法在实践中使用Saxon(除其他原因外,我使用Java小程序并

java - 如何通过 XSLT 在 Java 中合并 2 个 XML 流

我想在Java中合并2个XML流(字符串),必须通过XSLT(我可以更改转换),但问题是XML作为字符串出现。有很多例子,但是通过文件。这可以在不将它们保存在文件中的情况下完成吗?谢谢。 最佳答案 我只知道一种使用自己实现URIResolver的方法.publicfinalclassStringURIResolverimplementsURIResolver{Mapdocuments=newHashMap();publicStringURIResolverput(finalStringhref,finalStringdocument

java - XSLT 文档() : Is it slower when calling it multiple times?

2013年7月17日更新:XALAN2.7不缓存document()请求中的调用。因此,将每个需要的文档存储在XSL中的一个变量中至关重要。我已经搜索了很长时间,但没有找到我这个简单问题的具体答案:哪种方法更快或者编译器是否足够“智能”以致于两种变体相同?注意:我使用的是Xalan2.7(JDK1.6中的默认实现):1)我必须读取外部XML中的属性:每当我需要城市时,我都会使用上面的表达式(比如说100次)2)我没有调用document()100次,而是将XML节点存储在一个变量中:然后我用了100次哪个更快、更好,原因是什么?谢谢! 最佳答案

java - XSLT 导入语句的 Saxon 错误

每当我有XSLT导入语句时,Saxon处理器都会给我一个错误。这是错误:XTSE0165:I/OerrorreportedbyXMLparserprocessingfile:shared/test.xslt(Thesystemcannotfindthepathspecified):这是我的XSLT文档的样子:...我的java代码TransformerFactorytransformerFactory=TransformerFactoryImpl.newInstance();transformerFactory.setURIResolver(uriResolver);//myowncu

Java 转换器错误 : Could not compile stylesheet

我想用Java中的XSLT转换XML。为此,我使用了javax.xml.transform包。但是,我得到异常javax.xml.transform.TransformerConfigurationException:Couldnotcompilestylesheet。这是我正在使用的代码:publicstaticStringtransform(StringXML,StringXSLTRule)throwsTransformerException{SourcexmlInput=newStreamSource(XML);SourcexslInput=newStreamSource(XSL

java - 捕获 xsl :message output in java

我试图在调用我的转换时在java中捕获xsl:message。下面是我的代码片段。finalArrayListerrorList=newArrayList();ErrorListenererrorListener=newErrorListener(){@Overridepublicvoidwarning(TransformerExceptione)throwsTransformerException{//TochangebodyofimplementedmethodsuseFile|Settings|FileTemplates.log.error(e.getMessage());err