0

我有以下 rdf/xml 数据,我想获取元素的值,rtc_cm:Categoryhttps://test.yahoo.com:9443/ccm/resource/itemOid/com.Category/_ivX6csaREeK41JJsvCkJ_A

<rdf:RDF>
  <rdf:Description rdf:about="https://server:9443/ccm/oslc/categories">
    <rdfs:member>
      <rtc_cm:Category rdf:about="https://server:9443/ccm/resource/itemOid/com.Category/_ivX6csaREeK41JJsvCkJ_A">
        <rtc_cm:hierarchicalName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Test 2</rtc_cm:hierarchicalName>
      </rtc_cm:Category>
    </rdfs:member>
    <rdfs:member>
      <rtc_cm:Category rdf:about="https://server:9443/ccm/resource/itemOid/com.Category/_iV5DcMaREeK41JJsvCkJ_A">
        <rtc_cm:hierarchicalName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Unassigned</rtc_cm:hierarchicalName>
      </rtc_cm:Category>
    </rdfs:member>
  </rdf:Description>
  <oslc:ResponseInfo rdf:about="https://server:9443/ccm/oslc/categories?oslc.select=rtc_cm:hierarchicalName&oslc.where=rtc_cm:projectArea=%22_fE-FT8aREeK41JJsvCkJ_A%22">
    <dcterms:title>Categories</dcterms:title>
    <oslc:totalCount>2</oslc:totalCount>
  </oslc:ResponseInfo>
</rdf:RDF>
4

1 回答 1

2

在处理 RDF/XML 数据时,我不建议使用 XPath 来定位元素。RDF/XML 不是您的普通 XML 文件,实际结构可能会根据服务器端库确定的在 RDF/XML 中表达内容的最佳方式而有所不同。我的建议是使用 RDF/XML 格式的客户端库并利用其 API 来查找元素(节点)。即使用诸如Apache Jena之类的库并使用以下形式的调用:

Property rdfTypeProp = model.getProperty(
  "http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
Resource categoryNode = model.getResource(
  "https://jazz.net/xmlns/prod/jazz/rtc/cm/1.0/Category");
StmtIterator categoryIterator = model.listStatements(
  new SimpleSelector(null, rdfTypeProp , categoryNode));

请注意,semanticweb.com 上有一个类似的线程

于 2014-01-08T16:09:22.640 回答