【问题标题】:Getting HTML values in Store apps在商店应用程序中获取 HTML 值
【发布时间】:2013-05-25 03:44:20
【问题描述】:

我正在从我的存储文件夹中解析一个 HTML 文件。我将解析以获取一些值。

StorageFile store = await appfolder.GetFileAsync("01MB154.html");
string content = await FileIO.ReadTextAsync(store);
XmlDocument doc = new XmlDocument();
doc.LoadXml(content);
XmlNodeList names = doc.GetElementsByTagName("img");

我在 LoadXml(content) 行中遇到异常。

“在 IMG.exe 中发生了 'System.Exception' 类型的异常,但未在用户代码中处理, 附加信息:HRESULT 异常:0xC00CE584"

我尝试了这个答案,但还没有为我工作。link

这是我的 HTML 文件的一部分。

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta name="generator" content="Web Books Publishing" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>Main Text</title>
</head>
<body>
<div>
<div class="figcenter">
<img src="images/img2.jpg"   alt="Cinderella" title="" />
</div>

我检查了一些我想使用的文件,但还不行。 我想知道还有其他方法可以获取 HTML 值。

谢谢,

【问题讨论】:

    标签: c# html microsoft-metro windows-store-apps


    【解决方案1】:

    根据W3Schools,您的 HTML 格式不正确

    试试这个

    StorageFile store = await appfolder.GetFileAsync("01MB154.html");
    string content = await FileIO.ReadTextAsync(store);
    XmlDocument doc = new XmlDocument();
    
    XmlLoadSettings loadSettings = new XmlLoadSettings();
    loadSettings.ProhibitDtd = false;
    
    doc.LoadXml(content, loadSettings);
    XmlNodeList names = doc.GetElementsByTagName("img");
    

    更新 1

    这是我的工作代码

    StorageFile store = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("01MB154.html");
    string content = await FileIO.ReadTextAsync(store);
    XmlDocument doc = new XmlDocument();
    XmlLoadSettings loadSettings = new XmlLoadSettings();
    loadSettings.ProhibitDtd = false;
    doc.LoadXml(content, loadSettings);
    XmlNodeList names = doc.GetElementsByTagName("img");
    

    更新 2

    &amp;amp;nbsp; 替换为&amp;amp;nbsp;,它对我有用。

    【讨论】:

    • @Xyroid 嗨,我更改了尚未对我有用的设置。这次更改异常编号 HRESULT 中的异常:0xC00CE002 在 W3Schools 中,我检查以验证我的 html 数据,它没有给出任何错误。我期待有没有其他解决方案。谢谢。
    • 你能给我完整的html文件吗?
    • 0xC00CE002 对未定义实体的引用。如果您的 XML 包含“&”、“”,那么您需要转义这些实体。像 '&' 必须替换为 '&'像这样。
    • 是的,你是对的。与此同时,我检查了我的几个文件。如果文件包含'&'之类的东西,它就会给出异常。剩下的都很好,这是我面临的问题之一。 [sdrv.ms/12TTVX3 ] 你能给出一个替换这些值的想法吗?
    • 我没有遇到文件“01MB154.html”的任何问题,您是否将我的解决方案用于“01MB154.html”? Different ways how to escape an XML string in C#
    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    相关资源
    最近更新 更多