属性上的XSLT筛选器

属性上的XSLT筛选器,xslt,filtering,umbraco,Xslt,Filtering,Umbraco,我需要一些基于属性过滤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" create

我需要一些基于属性过滤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>
(我也需要@isDoc属性),但意识到只有当
hideInNavigation
LandingPage
标记的属性时,这才有效,所以我尝试了

value['hideInNavigation'='0']

但这似乎也没什么作用。在对答案进行了大量搜索之后,我还没有找到任何答案,因此我想知道是否可能

假设当前上下文是
元素,您可以使用以下选项选择hideInNavigation=0的登录页面:

LandingPage[hideInNavigation = '0']
如果您愿意分享您的XSLT,我将为您提供关于如何针对这种特殊情况修改XSLT的更具体指导


您的第一个示例中的
@isDoc
测试是您想要的吗?是否要筛选具有
isDoc
属性和
hideInNavigation
值为0的登录页?

'hideInNavigation'='0'
比较保证不同的两个字符串
'hideInNavigation'
'0'


在根目录的上下文中,
LandingPage[hideInNavigation=0]
将与示例中的LandingPage元素匹配。

此XPath返回isDoc属性为空且hideInNavigation元素内容为“0”的所有LandingPage

//LandingPage[@isDoc="" and hideInNavigation='0']

您好,是的,我也需要isDoc属性,所以我尝试了*[@isDoc和hideInNavigation='0'],但这不起作用。在这种情况下,请向我们展示您的XSLT好吗?至少包含该逻辑的
,可能还有一点。这就是抓住页面的东西:
-这很好,但是当我尝试添加与隐藏导航相关的内容时,它不会返回任何结果。您尝试过
什么是
$currentPage
?为什么要使用“祖先”或“自我”?我猜是这样的,但我认为当前页面是您当前所在页面的id(或umbraco传递给自身的某种变量),我需要使用“祖先”或“自我”,因为我只需要当前页面的根节点,但前提是它不隐藏。我尝试按照您的建议将hideInNavigation添加到末尾(使用
,因为我得到了一个没有'and'的无效读数),但它没有返回任何结果
[@isDoc和hideInNavigation='0']
-您只需要删除
@
,因为
hideInNavigation
是一个子元素而不是一个属性。
//LandingPage[@isDoc="" and hideInNavigation='0']