gpt4 book ai didi

java - 在带有属性的 XML 中使用 org.apache.commons.digester.Digester

转载 作者:行者123 更新时间:2023-12-01 19:07:41 24 4
gpt4 key购买 nike

我将从这个 XML/RDF 中提取值:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.0="urn:turismoculturale.itdc.filas-1.0.0-RC1#">
<j.0:Chiesa rdf:ID="turismoCulturale_POI_880">
<j.0:title xml:lang="en">Church of S. Giuda Taddeo or S. Onofrio - Gaeta</j.0:title>
<j.0:title xml:lang="it">Chiesa S. Giuda Taddeo o S. Onofrio - Gaeta</j.0:title>
</j.0:Chiesa>
</rdf:RDF>

当我使用“en”语言时,我希望获得 en 标题,否则,我希望获得“it”标题。我可以使用以下方法在 Poi bean 中设置标题值:

Digester digester = new Digester();
digester.setNamespaceAware( true );
digester.setRuleNamespaceURI( "urn:turismoculturale.itdc.filas-1.0.0-RC1#" );
digester.addObjectCreate( "*/Chiesa", Poi.class);
digester.addBeanPropertySetter("*/title", "title");
...

但我不知道这是英文标题还是意大利标题。

最佳答案

好的 - 首先也是最重要的,不要尝试使用 XML 解析器来解析 RDF/XML。它永远不会起作用,因为 XML 文档的语义与 RDF/XML 无关,并且这是一个坏主意(如果您知道 RDF/XML 的工作原理),特别是在动态生成 RDF/XML 的情况下(你可以通过命名空间来判断)。您需要使用 RDF 解析器来解析 RDF。

这意味着不要使用 XML 到 Java 对象映射工具,而使用 RDF 到 Java 对象映射工具。

这是一个很好的链接,解释了如何执行此操作:

还有一个:

以及上述资源中所有工具的链接:

要了解彻底的 RDF 解析器,请查看 Jena:

这是一个 Apache 项目,也很好地 Maven 化了。

关于java - 在带有属性的 XML 中使用 org.apache.commons.digester.Digester,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9454461/

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