gpt4 book ai didi

C# 从 HTML Body 解析 XML 并保存到文件

转载 作者:行者123 更新时间:2023-12-04 08:04:29 25 4
gpt4 key购买 nike

C# 从 API 执行 GET 后,它返回嵌入在 HTML 文件中的 XML 代码,类似于:

<!DOCTYPE html>

<html lang="en">
<head>
<meta name="viewport" content="initial-scale=1, width=device-width">
<title>config</title>
</head>
<body>

<CONFIG="2"/>
<VALUE1="1"/>
<VALUE2="2"/>
<CONFIGEND="0"/>

</body>
</html>
我试图将 XML 内容从正文 " "保存到文件中。我尝试使用 HtmlAgilityPack 导致 XML 数据被修改如下:
<CONFIG="2"></CONFIG>
...
<CONFIGEND="0"></CONFIGEND>
我是 C# 的新手(以及一般的编程),所以请善待。搜索尝试让我比开始时更困惑:/

最佳答案

是的,您已经发现 HtmlAgilityPack 正在转换某些东西。
Html 实际上是一个 Xml 文件。但是 System.Xml.XmlDocument 不能处理这个 html 文件。所以需要手动解析。
正如 Anis R. 所说,最好的方法是正则表达式。要使用正则表达式,您需要添加 using System.Text.RegularExpressions;到第一行。
假设您的 Html 内容在 htmlstring 变量中。
首先,您需要为您的案例定义模式。

string regexPattern = @"\<body\>(.*?)\<\/body\>";
Regex regex = new Regex(regexPattern, RegexOptions.Singleline);
您需要使用 RegexOptions.Singleline 选项。因为你的 html 内容会有换行符。
string body = regex.Match(htmlstring).Value;
有了这个,你将拥有:
<body>

<CONFIG="2"/>
<VALUE1="1"/>
<VALUE2="2"/>
<CONFIGEND="0"/>

</body>
删除正文标签;
string result = body.Replace("<body>", "").Replace("</body>", "");
修剪前导和尾随空格;
string prettierResult = result.Trim();
现在你有;
<CONFIG="2"/>
<VALUE1="1"/>
<VALUE2="2"/>
<CONFIGEND="0"/>
将内容保存到文件;
File.WriteAllText("c:\\path-to-save", prettierResult);

关于C# 从 HTML Body 解析 XML 并保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66296291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com