我有一个xml,如 -
<?xml version="1.0" encoding="UTF-8"?>
<oslc_cm:Collection xmlns:oslc_cm="http://open-services.net/xmlns/cm/1.0/"
oslc_cm:totalCount="7"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rtc_cm="http://jazz.net/xmlns/prod/jazz/rtc/cm/1.0/">
<rtc_cm:Action rdf:resource="https://rtc.gsissc.myatos.net:9443/ccm/oslc/workflows/_ezLt4PJ7EeGRg6GNKwqw9g/actions/com.ibm.team.workitem.defectWorkflow/com.ibm.team.workitem.defectWorkflow.action.resolve">
<dc:identifier>com.ibm.team.workitem.defectWorkflow.action.resolve</dc:identifier>
<rtc_cm:resultState rdf:resource="https://rtc.gsissc.myatos.net:9443/ccm/oslc/workflows/_ezLt4PJ7EeGRg6GNKwqw9g/states/com.ibm.team.workitem.defectWorkflow/3"/>
<dc:title>Resolve</dc:title>
<rtc_cm:iconUrl>https://rtc.gsissc.myatos.net:9443/ccm/service/com.ibm.team.workitem.common.internal.model.IImageContentService/processattachment/_ezLt4PJ7EeGRg6GNKwqw9g/workflow/resolve.gif</rtc_cm:iconUrl>
</rtc_cm:Action>
从中我必须获取rtc_cm:resultState rdf:resource
。
它的正确XPath是什么。我正在使用XPathExpression xPathExpressionDescription = xpath.compile("../rtc_cm:resultState/@rdf:resource");
给我空指针。
请指导我。
答案 0 :(得分:0)
../rtc_cm:resultState/@rdf:resource
假设上下文节点 - 您的XPath表达式相对的节点 - 是rtc_cm:resultState
的兄弟。
基于文档根目录,绝对路径可能会更好。类似的东西:
/oslc_cm:Collection/rtc_cm:Action/rtc_cm:resultState/@rdf:resource
(当然,假设您传递的IXmlNamespaceResolver
实现具有所有适用的命名空间)。
答案 1 :(得分:0)
绝对路径是:
/oslc_cm:Collection/rtc_cm:Action/rtc_cm:resultState/@rdf:resource
如果您知道只有一个resultState实例,或者您想要查询所有实例:
//rtc_cm:resultState/@rdf:resource
请确保您的命名空间管理器具有您在XPath表达式中使用的命名空间的定义。