如何使用LINQ解析OWL文件(包含RDF名称空间)
||
我设法使用LINQ解析了一个简单的XML文件并将其写入列表框,但是当我尝试从OWL文件获取值时,查询没有得到任何结果,因此\“ variables \”是空的。这是我尝试执行的操作之一:
XDocument owlXML = XDocument.Load(Server.MapPath(\"App_Data\\\\filename.owl\"));
var variables = from variable in owlXML.Descendants(\"names\")
where variable.Attribute(\"rdf:ID\") != null
select new
{
type = tog.Attribute(\"rdf:ID\").Value
};
ListBox1.DataSource = clothes;
ListBox1.DataBind();
猫头鹰文件
<rdf:RDF
xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"
...
...
xml:base=\"http://www.owl-ontologies.com/Ontology1299428518.owl\">
<owl:Ontology rdf:about=\"\"/>
<owl:Class rdf:ID=\"animal\"/>
<owl:Class rdf:ID=\"natural_disaster\">
<rdfs:subClassOf>
<owl:Class rdf:ID=\"disaster\"/>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Class rdf:ID=\"natural_phenomenon\"/>
</rdfs:subClassOf>
</owl:Class>
<names rdf:ID=\"New York\"/>
<names rdf:ID=\"Washington\"/>
<names rdf:ID=\"Sofia\"/>
<names rdf:ID=\"Miami\"/>
</rdf:RDF>
没有找到相关结果
已邀请:
1 个回复
目浆搽
确保代码中名称空间的值与XML中声明的名称完全匹配。 另外,由于您只对一个值感兴趣,因此不必在这里使用匿名类型,因此可以通过直接返回字符串(
然后是
)来简化操作: