UWP环境下如何从HTML标签提取内容?求指定name的input值获取代码
UWP中通过name属性获取input的value值(无需第三方库)
嘿,作为UWP新手碰到这种第三方库冲突的问题确实挺闹心的!既然HTML Agility Pack导致了sockets.dll重复的构建错误,那咱们直接用UWP原生的Windows.Data.Html.Dom API来解决,完全不需要依赖第三方库,还能完美适配UWP环境。
下面是具体的实现步骤和代码:
首先引入必要的命名空间
在你的代码文件顶部添加:using Windows.Data.Html.Dom;编写核心代码获取input的value
假设你已经有了包含目标input的HTML字符串(比如你提供的<input type="hidden" name="data" value="Hello">),可以这样处理:// 你的HTML内容 string htmlContent = @"<input type=""hidden"" name=""data"" value=""Hello"">"; string targetValue = string.Empty; try { // 将HTML字符串加载为HtmlDocument对象 HtmlDocument htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(htmlContent); // 通过name属性查找元素 var elements = htmlDoc.GetElementsByName("data"); if (elements.Count > 0) { // 获取第一个匹配元素的value属性值 targetValue = elements[0].GetAttribute("value"); } // 输出结果,此时targetValue应该是"Hello" System.Diagnostics.Debug.WriteLine(targetValue); } catch (Exception ex) { // 处理可能的异常,比如HTML格式错误等 System.Diagnostics.Debug.WriteLine($"处理HTML时出错:{ex.Message}"); }代码说明
HtmlDocument是UWP原生提供的HTML解析类,专门用于处理HTML内容,不需要额外安装任何NuGet包。GetElementsByName方法会返回所有匹配指定name属性的元素集合,我们只需要取第一个(因为通常name属性在表单里是唯一的)。- 加入了异常处理和空值判断,避免因为HTML格式问题或者找不到元素导致程序崩溃。
这个方法完全避开了第三方库的依赖,也就不会出现sockets.dll重复的构建错误了,对你这个UWP新手来说也更友好,不需要折腾第三方库的兼容问题~
内容的提问来源于stack exchange,提问作者Neel
相关产品推荐
相关产品推荐

