属性上的XSLT筛选器
我需要一些基于属性过滤xml的帮助 我有以下格式的XML:属性上的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 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']