XPath 文档评估方法 C#

XPath 可用于查找与 XPath 表达式中定义的某些条件相匹配的特定节点。您可以使用 XPath 查询在 XML 或 HTML 文档中导航。因此,本文解释了如何使用 XPath 根据您的要求选择特定节点。

使用 XPath 从 XML 或 HTML 文件中选择节点 - C# API 安装

Aspose.HTML for .NET API 可用于自动选择特定类型节点的过程,或从所选节点读取特定信息。您可以通过从 New Releases 页面下载 DLL 文件或使用以下 NuGet 安装命令来快速配置 API:

PM> Install-Package Aspose.Html

在 C# 中使用 XPath Document.Evaluate() 方法从 HTML 网页获取图像

您可以使用 Document.Evaluate() 方法从 HTML 网页获取图像。请按照以下步骤完成此过程:

  1. 初始化 HTMLDocument 类的对象以加载源文件。
  2. 将 XPath 表达式和其他参数传递给 Evaluate 方法。
  3. 遍历选定的节点并获取每个图像的链接。

以下代码示例演示了如何使用 XPath Document.Evaluate() 方法从 HTML 网页获取图像:

// 创建 HTML 文档的实例
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // 评估 XPath 表达式
    var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);

    // 遍历结果节点并将它们打印到控制台
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

在 C# 中使用 XPath Document.Evaluate() 方法从 XML 文件中选择节点

在某些情况下,您可能需要从 XML 文件中选择特定节点。以下步骤解释了如何满足此类要求:

  1. 使用 HTMLDocument 类加载源 XML 文件。
  2. 在传递 XPath 表达式和其他参数的同时调用 Evaluate 方法。
  3. 遍历所选节点并打印所选节点的全部内容。

下面的代码片段展示了如何使用 XPath Document.Evaluate 方法从 XML 文件中选择节点:

// 创建文档实例
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // 评估 XPath 表达式
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // 迭代结果节点并将它们的内容打印到控制台
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

在 C# 中使用 XPath Document.Evaluate() 方法从选定节点中选取特定信息

有时您可能需要从节点获取特定细节而不是全部内容。您可以按照以下步骤使用 XPath 查询从所选节点获取特定信息。

  1. 使用 HTMLDocument 类访问输入 XML 文件。
  2. 调用 Evaluate 方法以获取与 XPath 表达式匹配的节点。
  3. 循环匹配节点并打印每个节点的具体内容。

以下代码示例说明了如何使用 XPath Document.Evaluate 方法从 XML 中的选定节点中选取特定信息:

// 创建文档实例
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // 选择匹配 XPath 表达式的经销商
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // 遍历选定的经销商
    while ((dealer = dealers.IterateNext()) != null)
    {
        // 获取并打印经销商名称和电话
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // 选择并打印匹配 XPath 表达式的 CarID
        var carIds = doc.Evaluate(".//Car[descendant::Model > 2005 and descendant::Price < 25000]/@CarID", dealer, doc.CreateNSResolver(doc), XPathResultType.Any, null);
        Aspose.Html.Dom.Node carId;

        while ((carId = carIds.IterateNext()) != null)
        {
            Console.WriteLine("Car id: " + carId.TextContent);
        }
    }
}

在 C# 中使用 XPath 选择节点 - 阅读更多

通过访问 文档 部分中的以下主题,您可以了解有关使用 XPath 查询的更多详细信息。

在 C# 中从 HTML 或 XML 选择节点的 XPath 查询 - 免费评估许可证

您可以通过申请 免费临时许可证 来不受任何限制地测试 API 功能的全部功能。

结论

在本文中,您学习了如何使用 XPath 查询 Document.Evaluate 方法来选择特定节点或所选节点的特定内容与 XPath 表达式相匹配。然而,如果您想讨论您的任何疑虑,请通过 免费支持论坛 与我们联系。

也可以看看

使用 C# 在 HTML 中使用 CSS 选择器