【问题标题】:How to Save Html data from a website to a text file using Xamarin forms and C#如何使用 Xamarin 表单和 C# 将 Html 数据从网站保存到文本文件
【发布时间】:2021-12-04 11:19:18
【问题描述】:

我正在使用 C# 和 Xamarin 表单来创建一个电话应用程序,该应用程序(当按下按钮时)将从网站中提取特定的 html 数据并将其保存到文本文件中(程序可以稍后再次读取) .我从这个视频中的教程开始:https://www.youtube.com/watch?v=zvp7wvbyceo 如果你想看看我是从什么开始的,这是我到目前为止使用这个视频https://www.youtube.com/watch?v=wwPx8QJn9Kk 制作的代码,在创建的“AboutViewModel.cs”文件中视频:

Image link because this is a new account i guess and i cant embed images or something

粘贴代码本身(但图像可以让您更好地了解所有内容):

    private Task WebScraper()
    {
        HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
        HtmlAgilityPack.HtmlDocument doc = web.Load("https://www.flightview.com/airport/DAB-Daytona_Beach-FL/");
        foreach (var item in doc.DocumentNode.SelectNodes("//td[@class='c1']"))
        {
            var itemstring = item;
            File.WriteAllText("AirportData.txt", itemstring);
        }

        return Task.CompletedTask;
    }

    public ICommand OpenWebCommand { get; }
    public ICommand WebScraperCommand { get; }
}

}

我现在遇到的唯一错误是“无法将 'HtmlAgilityPack.HtmlNode' 转换为 'string'” 我正在努力修复它,但我认为这不是最好的解决方案,所以你拥有的任何东西都是有用的.谢谢:)

【问题讨论】:

    标签: c# html xamarin xamarin.forms xamarin.android


    【解决方案1】:

    HtmlNode 是一个对象,而不是一个简单的字符串。您可能想使用 OuterHtml 属性,但请查阅文档以查看这是否适合您的用例

    string output = string.Empty;
    
    foreach (var item in doc.DocumentNode.SelectNodes("//td[@class='c1']"))
    {
        output += item.OuterHtml;
    }
    
    File.WriteAllText("AirportData.txt", output);
    

    注意,你需要指定一个可写文件夹的路径,应用的根文件夹是不可写的。见https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/data/files?tabs=windows

    【讨论】:

    • 这消除了代码中的错误,但是当单击按钮时,我得到了这个: System.NullReferenceException Message=Object reference not set to an instance of an object。我会继续研究它,看看我是否也能解决这个问题。
    • 您需要确定我们是哪一行导致了异常(堆栈跟踪应该向您显示这一点),然后找出哪个项目为空
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多