2013-09-27 92 views
3

我有以下代码:如何使用Xpath定位此元素?

<g xmlns="http://www.w3.org/2000/svg" id="MainMenu1" display="block" transform="translate(1125, 0)"> 
    <g dp:id="Content" xmlns:dp="http://dreampark.se/extensions" width="375" height="624" id="MainMenuViewMainMenu_DynamicChild3Content" _shadowId="MainMenuViewMainMenu_DynamicChild3Content"> 
     <g transform="translate(0,0)" x="0" y="0" clip-path="url(#clipPath59)"> 
     <g display="block" transform=" translate(0,208)"> 
      <g id="RootMenuItem" width="376" height="50" display="block" buffered-rendering="static" transform="translate(0,0)"> 
       <g id="RootMenuItemIconHolder" transform="translate(25,2)" display="none"> 
        <image id="RootMenuItemIcon" opacity="1.0" width="40" height="40" display="block"/> 
       </g> 
       <foreignObject width="260" height="30" x="65" y="10" transform="null"> 
        <body xmlns="http://www.w3.org/1999/xhtml"> 
        <div xmlns="http://www.w3.org/1999/xhtml" style="font-size:22;color:#AAACAE" id="RootMenuItemText" original_x="null" fill="#AAACAE" font-size="22" width="298">Text 2</div> 
        </body> 
       </foreignObject> 
      </g> 
      <g id="RootMenuItem" width="376" height="50" display="block" buffered-rendering="static" transform="translate(0,52)"> 
       <g id="RootMenuItemIconHolder" transform="translate(25,2)" display="block"> 
        <image id="RootMenuItemIcon" opacity="1.0" width="40" height="40" display="block"/> 
       </g> 
       <foreignObject width="260" height="30" x="65" y="10" transform="null"> 
        <body xmlns="http://www.w3.org/1999/xhtml"> 
        <div xmlns="http://www.w3.org/1999/xhtml" style="font-size:22;color:#AAACAE" id="RootMenuItemText" original_x="null" fill="#1D212D" font-size="22" width="298">Text 1</div> 
        </body> 
       </foreignObject> 
      </g> 
     </g> 
     </g> 
    </g> 
</g> 

我想找到与id="RootMenuItemText"的元素,但我需要这一个元素为元素的子谁是下一个元素的兄弟(这id"RootMenuItem"),有具有id="RootMenuItemIconHolder"的子女,"display"属性中的值为"block"

我需要找到的元素是:

<div xmlns="http://www.w3.org/1999/xhtml" style="font-size:22;color:#AAACAE" id="RootMenuItemText" original_x="null" fill="#1D212D" font-size="22" width="298">Text 1</div> 

我已经试过此XPath:

//*[@id="RootMenuItemIconHolder"][@display='block']/following-sibling::*[last()] 

但它不是定位的元素。有谁知道哪个Xpath表达式可以帮助我找到元素?提前致谢。

回答

1

尝试以下操作:

//*[@id="RootMenuItemIconHolder"][@display='block']/following-sibling::*[last()]/descendant::div[@id='RootMenuItemText'] 

您应该还记得,你必须设定适当的命名空间进行选择的工作。这是因为您的文档在文档的不同级别上使用默认的xmlns xml名称空间。