java - 无法在 Jena 库中创建用于从 RDF 解析或提取 URIS 的模型类?XML 页面

标签 java xml parsing rdf jena

我使用 Jena Library 编写了以下代码在网页上打印 URI,但显示错误。代码是

      public static void test(String url)
     {
      try
      {
           System.out.println("to go");
           Model read = ModelFactory.createDefaultModel().read(url);
           System.out.println("to go");
           StmtIterator si=read.listStatements();
            System.out.println("to go");
            while(si.hasNext())
             {
             Statement s=si.nextStatement();
               Resource r=s.getSubject();
             Property p=s.getPredicate();
                RDFNode o=s.getObject();
              System.out.println(r.getURI());
               System.out.println(p.getURI());
              System.out.println(o.asResource().getURI());

            }
      }
           catch(JenaException | NoSuchElementException c)
            {    }
          }

谁能帮我进一步解决这个问题???

无法创建模型读取对象。 URL 是 xml 页面的网址。

出现以下错误:

            Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at com.hp.hpl.jena.util.Metadata.<clinit>(Metadata.java:39)
         at com.hp.hpl.jena.JenaRuntime.<clinit>(JenaRuntime.java:37)
         at com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl.<clinit>(RDFReaderFImpl.java:74)
         at com.hp.hpl.jena.rdf.model.impl.ModelCom.<clinit>(ModelCom.java:54)
         at com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:142)
at com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:136)
at web.crawler.WebCrawler.test(WebCrawler.java:52)
at web.crawler.WebCrawler.main(WebCrawler.java:98)
    Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

最佳答案

将所有 jar 添加到发行版的 lib/目录中。您可以为类路径使用 lib/* 形式。

如果您仍然缺少 org.w3c.dom.ElementTraversal(在 xml-apis 中),那是因为您有旧版本的 Xerces 和旧的 xml-apis。

关于java - 无法在 Jena 库中创建用于从 RDF 解析或提取 URIS 的模型类?XML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542729/

相关文章:

java - JButton 不返回正确的文本值

java - SQL语句花费大量时间,是否可以对其进行优化?

java - 仅反转字符串中的字母并保持单词的顺序相同

java - 在我的 hdpi 文件夹中添加新的 png 图片后,R.java 消失了

c# - 计算 XDocument 上的子节点

c# - 解析字符串并在 C# 中查找特定文本

scala - 如何在不丢剑的情况下从文本中解析占位符,这样你就可以用灯罩击退掠夺者

java - 使用 fxml 在 JavaFX 中显示图像

java - 删除文本节点并检查 html 中的替代文本节点 : Jsoup

python - 如何解析grep生成的文件中的数据?