我有fowoling xml:
<workflow URI="">
<output ID="" URI="#out1"/>
<input ID="sessionToken" URI="#sessionToken"/>
<services>
<sequence>
<service URI="">
<input ID="" URI=""/>
<input URI="" value=""/>
<output ID="" URI=""/>
</service>
</sequence>
</services>
</workflow>
Run Code Online (Sandbox Code Playgroud)
我只想选择工作流节点的第一级子级,并从该选择中排除服务节点,所以就我而言,我只希望
<output ID="" URI="#out1"/>
<input ID="sessionToken" URI="#sessionToken"/>
Run Code Online (Sandbox Code Playgroud)
选择了这两个节点,为此,我想在Java中使用XPATH。附加要求是所选节点必须具有URI参数。
我已经试过了:
XPathExpression expr = xpath.compile("//workflow[@URI='" + oldUrlValue.getNodeValue() + "'] | //workflow//*[not(local-name() = 'services') and @URI]");
Run Code Online (Sandbox Code Playgroud)
但是我得到的所有节点都带有URI参数,而不是只有主要工作流程节点和前两个子节点。
我已经试过了
目前尚不清楚您所说的“一级孩子”是什么意思,因为services
它与output
和input
元素位于同一级别。如果你的意思是返回的直接子workflow
是没有任何进一步的子元素,那么你可以使用下面的XPath表达式:
//workflow/*[not(*)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3783 次 |
最近记录: |