gpt4 book ai didi

java - 解析具有相同内容但基于不同架构的 xml 文件的最佳实践

转载 作者:行者123 更新时间:2023-12-01 15:55:37 24 4
gpt4 key购买 nike

我需要解析两个来源的 xml 文件。两个 xml 文件包含相同的内容,但每个源都使用自己的架构。这意味着我想要从 xml 文件中提取的值将存储在不同的元素名称中,具体取决于文件的源。

这是一个例子 - 假设我只对产品的“名称”感兴趣。

Source 1
-------------------------
<item>
<itemname>Camera</itemname>
<itemprice>20</itemprice>
</item>

Source 2
-------------------------
<productList>
<productName>Camera</productname>
<ProductPrice>20</productprice>
</productList>

要解析上面的内容,我必须知道 xml 文件的来源,然后执行

getElementsByTagName("itemname");

getElementsByTagName("productName");

我最初的计划是为每个源的 xml 文件使用不同的解析器,但我想如果我指定我需要的元素的路径,也许我可以编写一个通用解析器。这样做的好处是我可以处理来自任何来源的任何 xml 文件,而无需修改解析器。

我想做的是将元素的路径存储到属性文件中。即

source1.name="itemname"
source2.name=productName

然后,通用解析器将根据我提供的名称检索元素。这可能会起作用,但我认为如果我对多个元素感兴趣,通过属性文件维护它可能会很麻烦。

有没有更好的方法来解决以上问题?请注意,我受到的一个限制是目标平台是 JDK 1.4,因此 xpath 等将无法工作。

最佳答案

理想的解决方案是 XPath。无论 XML 输入有多么不同,您都可以将每个 XML 输入的 XPath 作为字符串存储在属性文件中。有几个与 JDK 1.4 一起使用的 XPath 兼容解析器。

关于java - 解析具有相同内容但基于不同架构的 xml 文件的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com