如何使用 Xpath 选择
中的文本

本文关键字:文本 pre 何使用 Xpath 选择 | 更新日期: 2023-09-27 18:33:36

我正在尝试在使用 Xpath 的 C# 中获取 pre 标记中的文本。该网页仅包含以下内容:

<body>
    <pre>
        The text I am trying to select
    </pre>
</body>

我似乎不能只选择该文本,而且我不完全知道如何将其放入字符串中。这是我正在使用的代码:

var WebgetME2_ = new HtmlWeb();
var docME2_ = WebgetME2_.Load(webpage); //loading the webpage
HtmlNode NODEME2_ = docME2_.DocumentNode.SelectSingleNode("//*/pre"); //select the node
string innerME_ = NODEME2_.InnerText; //put the node innertext in string
// After getting the text within the <pre> tags I want to select a part of it using RegEx, that's why I need it in a string
string imagineME2_ = Regex.Match(innerME_, "(?=http)(.+?)(?<=.jpg)").ToString();

如何使用 Xpath 选择<pre class=中的文本" />

我找到了绕过这个问题的方法。

System.Net.WebClient WebclientME_ = new System.Net.WebClient();
byte[] rawME_ = WebclientME_.DownloadData(webpage); //download page
string innerME_ = System.Text.Encoding.UTF8.GetString(rawME_); //write to a string
string imagineME2_ = Regex.Match(innerME_, "(?=http)(.+?)(?<=.jpg)").ToString();

它下载了我不喜欢的页面,因为它运行速度较慢,但可以工作。

请尝试以下Xpath:-

/body/pre/text()

text()函数将从您在 Xpath 中提到的路径中为您检索所有文本

Pre应该是身体的孩子。如果它不是您的真实结构,请使用双斜杠//.... //意味着它将从您的完整 DOM 中找到前节点。

您也可以尝试以下Xpath:-

/body//pre/text()

希望它能帮助你:)