0

我需要一些帮助来根据属性过滤我的 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']

但这似乎也没有做任何事情。在寻找答案之后,我还没有想出任何东西,所以想知道是否有可能

4

3 回答 3

1

假设当前上下文是<root>元素,您可以选择带有 hideInNavigation = 0 的 LandingPages:

LandingPage[hideInNavigation = '0']

如果您愿意分享您的 XSLT,我将为您提供有关如何针对这种特殊情况进行修改的更具体的指导。

你的第一个例子中的@isDoc测试是你想要的吗?是否要过滤具有isDoc属性和hideInNavigation值为 0 的 LandingPages?

于 2013-02-07T16:16:33.443 回答
1

'hideInNavigation'='0'比较两个字符串'hideInNavigation''0',保证它们是不同的。

在 root 的上下文中,LandingPage[hideInNavigation=0]将匹配您示例中的 LandingPage 元素。

于 2013-02-07T16:17:43.053 回答
0

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

//LandingPage[@isDoc="" and hideInNavigation='0']
于 2013-02-07T16:42:53.770 回答