我需要一点帮助,根据属性
过滤我的xml我有以下格式的XML:
<?xml version="1.0" encoding="utf-8" ?>
<root id="-1">
<LandingPage id="1067" parentID="1050" level="2"
writerID="0" creatorID="0" nodeType="1066" template="1073"
sortOrder="0" createDate="2013-02-04T14:29:39"
updateDate="2013-02-07T11:08:27" nodeName="About"
urlName="about" writerName="Pete" creatorName="Pete"
path="-1,1050,1067" isDoc="">
<hideInNavigation>0</hideInNavigation>
</LandingPage>
</root>
我需要做的是过滤hideInNavigation = 0
中的这些元素我尝试了以下内容:
[@isDoc and @hideInNavigation ='0']
(我也需要@isDoc属性),但意识到只有当hideInNavigation
是LandingPage
标记的属性时我才会这样做,所以我试过
value['hideInNavigation'='0']
但这似乎也没有做任何事情。经过多次寻找答案,我没有想出任何东西,所以想知道是否可能
答案 0 :(得分:1)
假设当前上下文是<root>
元素,您可以选择带有hideInNavigation = 0的LandingPages:
LandingPage[hideInNavigation = '0']
如果您要分享您的XSLT,我会为您提供更具体的指导,说明如何针对此特定情况对其进行修改。
您的第一个示例中的@isDoc
测试是否是您想要的?是否要过滤具有isDoc
属性且hideInNavigation
值为0的LandingPages?
答案 1 :(得分:1)
'hideInNavigation'='0'
比较两个字符串'hideInNavigation'
和'0'
,这些字符串保证不同。
在root的上下文中,LandingPage[hideInNavigation=0]
将匹配示例中的LandingPage元素。
答案 2 :(得分:0)
此XPath返回所有LandingPage,其isDoc属性为空,hideInNavigation元素内容为'0'
//LandingPage[@isDoc="" and hideInNavigation='0']