我有抓取程序从包含RDF数据的网站抓取网址。 我试着像Jena一样得到它
Model model = ModelFactory.createDefaultModel();
model.read(url);
model.write(System.out);
url
为String
,第一行执行,调试器停止第二行,然后返回第一行(因为循环)。 url
是网页链接。
我也尝试获取页面的HTML代码,然后将该字符串传递给read
函数,但它也不起作用。
我真的是RDF和Jena的新手,而且我的Java经验并不是很广泛,所以任何帮助都很好。
答案 0 :(得分:1)
您从url
阅读模型所获得的代码是正确的。例如,这是一个完整的示例,它从RDF / XML规范的section 2.13 Typed Node Elements中读取一个示例:
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
public class RetrieveRemoteRDF {
public static void main(String[] args) {
final String url = "http://www.w3.org/TR/REC-rdf-syntax/example14.nt";
final Model model = ModelFactory.createDefaultModel();
model.read(url);
model.write(System.out);
}
}
输出(在默认的RDF / XML序列化中)是:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:j.0="http://example.org/stuff/1.0/" >
<rdf:Description rdf:about="http://example.org/thing">
<dc:title>A marvelous thing</dc:title>
<rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/>
</rdf:Description>
</rdf:RDF>
如果您遇到问题,似乎必须归因于传递给url
的{{1}}。