问题标签 [jaxp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 JAXP 在 XML 文档中插入表格
我想为我用 JAXP (DOM) 创建的 XML 文档做一个很好的演示。
我知道我可以在创建文件后读/写我的文件,但我想要更优雅的东西......
java - Java(JAXP) 和 XSLT:覆盖 XML 文件
我通过将 XML/HTML 文件 (temp.xml) 和 XSLT(temp.xsl) 作为输入来生成 XML 文件,并且我的输出生成为具有新名称 (temp_copy.xml) 的单独文件,但我想覆盖输入 XML 文件,而不是创建新文件。我尝试提供与输入文件中相同的路径,但这不起作用。那么实现这一目标的另一种方法是什么?提前致谢。
我的Java代码:
java - 为具有版本属性的 XML 文档解析哪个版本的 XML 模式
我必须编写一些代码来处理读取和验证在其根元素中使用版本属性来声明版本号的 XML 文档,如下所示:
有一堆嵌套模式,我的代码有一个org.w3c.dom.ls.LsResourceResolver
要弄清楚要使用什么模式,实现这个方法:
以前版本的架构已将架构版本嵌入到命名空间中,因此我可以使用 namespaceURI 和 systemId 来决定提供哪个架构。现在版本号已切换到根元素中的属性,而我的解析器无权访问它。我应该如何找出 XML 文档中的版本LsResourceResolver
?
java - Java:遍历目录中的 HTML 文件
我将 HTML 文件和一个 XSLT 文件作为输入并生成 HTML 输出,但在我的文件夹中有多个 HTML 文件,我必须将它们中的每一个作为输入并生成相应的输出文件,而 XSLT 输入文件每次都保持不变. 目前在我的代码中,我每次都重复代码块以获取输入 HTML 文件。取而代之的是,我想遍历文件夹中的所有 HTML 文件,并将它们一一作为输入文件以生成输出。在我当前的代码中,文件名也是固定的,part_1.html
但它可能会有所不同,在这种情况下,此代码将不起作用,这会产生问题。任何人都可以在这件事上帮忙:谢谢!
当前 Java 代码(两个文件的示例):
xml - JAXP Transformer 通过 DOMSource 返回样式表
我遇到了一个奇怪的问题,似乎找不到任何解决方案。我只是试图将 XSLT 样式表应用于 XML 文件(在这种情况下,SPARQL 查询结果格式化为 XML,但任何其他 XML 文件都会给出相同的结果)。在这种情况下,我需要通过 DOMSource 重新使用已加载的 XML 文档来创建转换器。您可以在下面找到代码(简化;通常,样式表文档来自其他地方):
StreamResult 的输出流返回加载的样式表,而不是转换后的 XML。如果我将第二行和第三行替换为:
然后一切正常。是的,当然我可以将加载的样式表文档序列化为字符串,将其转换为 ByteArrayInputStream(或者更糟糕的是,将其写入文件),然后使用它来创建 StreamSource,但这很愚蠢。
有什么原因这不起作用吗?
xml-file.xml 代码:
stylesheet.xml 代码:
谢谢!
威廉
java - 如何解析实体声明并获取 XML 中的文件路径?
参考上面的示例代码,我需要在我的 html 上获取日落图像,为此我需要获取在实体声明中定义的文件路径日落.jpg。
我将如何在 Java 中做到这一点?我试过
但它给了我abcd,但我需要文件路径'sunset.jpg'。
我也试过,
但我认为我的返回类型有一些问题,因为我希望将图像文件作为字节数组读取,?返回类型应该是什么?
java - 解析嵌套在其他 XML 值中的 XML 标记
我一直在开发一个特定的 XML 解析器来解析大量的 XML 。
我的问题是我很困惑如何解析嵌套在其他 XML 值中的 XML 标记。我的输入文件看起来像这样。
我能够使用 xpath 获取第一步标记的值。我的问题是如何使用 xpath 获取第二步值,或者更确切地说如何识别新标签何时在值标签中开始。
例如,我的第二步 xpath 正在返回这个结果 -最后使用这些 () 值
我的目标是 最终使用这些(max003)值
max003值必须取自xlink:href
另外- 我可以通过编写单独的 xpath 来获得 id 、actuate、show 的各个值。我的问题是我需要 在获得xlink:href值(即max003 )之后将max003值填充到这些值之后和值之前的括号内发送以进行显示。 所以我正在寻找一种方法来识别子节点 ID 的开始位置和时间?以及将其填充在括号内的机制。
java - JAXP XSLT 转换器默认使用错误的实现
我有一个 Tomcat 5.5 Web 应用程序,它使用 Apache Commons-Configuration 库在运行时生成 XML 配置文件。反过来,Commons-Configuration 使用javax.xml.transform
JAXP API 来完成此操作。
由于升级到 Java 7,操作失败并显示以下错误消息:
在过去的版本中,我从未捆绑 xalan.jar,而是依赖于平台默认的 XSLT 实现。
我检查过的一些事情:
META-INF/services/javax.xml.transform.TransformerFactory
我的任何应用程序 JAR 文件、库 jar 或 Tomcat jar 中都没有条目- 系统
javax.xml.transform.TransformerFactory
属性未设置(在运行时通过 JVisualVM 验证) - 目录中没有
jaxp.properties
文件jre/lib
运行 with-Djaxp.debug=1
产生以下输出:
这个后备值来自哪里?Oracle 发布了 Xalan 转换器,但从 1.7 开始将其重新打包为com.sun.org.apache.xalan.processor...
. 那不应该是后备值吗?
java - JAXP、JDOM、DOM4J 和 XERCES 有什么区别?
它们有什么区别?都说JAXP只是一个API规范,JDOM和DOM4J都实现了,对吗?而且它们都需要一个 XML 解析器,就像 XERCES 一样,对吗?提前致谢!
xslt - XSLT 转换传递参数
我试图在 XSLT 转换期间传递参数。这是 xsl 样式表。
下面是java代码。
我收到以下错误:-错误:'变量或参数'param1'未定义。' 致命错误:“无法编译样式表”
但是,如果我使用以下行来创建变压器,一切正常。
Q1。我只是想知道在创建 Transformer 时使用 DOMSource 有什么问题。
Q2。这是在 xml 文档中用值替换占位符的理想方法之一吗?如果我的占位符位于源 xml 文档中,是否有任何(直接)方法可以使用样式表(并传递参数)替换它们?