寻找所有课程" B"在课堂" A"在XPath中

时间:2017-01-19 17:26:38

标签: c# xml xpath

我无法为正在编写的程序找到合适的XPath。 XML是这样的:

<root>
    <div class"XYZ">
        <div>
            <div class = "abc">
                <a class = "important">Important Information - 1</a>
            </div>
            <div class = "abc">
                <a class = "important">Important Information - 2</a>
            </div>
            <div class = "abc">
                <a class = "important">Important Information - 3</a>
            </div>
        </div>
    </div>
</root>

所以,正如你所看到的,我需要去上一个课程&#34; XYZ&#34;在那个班里有很多名为&#34; abc&#34;的班级。实际上,课程前面有更多<div>&#34; abc&#34;。

我需要获得所有重要信息 - X&#34;。

我的想法是

FindElements(By.XPath("//*[contains(@class,'XYZ')]/*[contains(@class,'important')]");

为什么我不能只搜索班级的问题=&#34;重要的&#34;本身就是,文档中还有另一部分,它具有相同的类名,但我不需要这些信息。只有班级&#34; XYZ&#34;。

当我只使用:

FindElements(By.XPath("//*[contains(@class,'XYZ')]");

它有效,但我也得到了很多不重要的信息,因为<div>中有更多东西。

1 个答案:

答案 0 :(得分:1)

评论中建议的一个解决方案是

FindElements(By.XPath("//*[contains(@class,'XYZ')]//*[contains(@class,'important')]");