有一些不好的xml,比如:
NaN</td><td id="DemTechLimit8">NaN</td><td id="DemCommercLimit8">NaN</td><td id="AoValue8">NaN</td></tr><tr><td id="DemInt9">8:00 - 9:00
</td><td id="DemValue9">1</td><td id="DemValueDeclined9">NaN</td><td id="CalcValue9">NaN</td><td id="LoadLoss9">NaN</td><td id="DemTechLimit9">NaN</td><td id="DemCommercLimit9">NaN</td><td id="AoValue9">NaN</td></tr><tr><td id="DemInt10">9:00 - 10:00
</td><td id="DemValue10">1</td><td id="DemValueDeclined10">NaN</td><td id="CalcValue10">NaN</td><td id="LoadLoss10">NaN</td><td id="DemTechLimit10
如何在没有任何验证或dtd的情况下将其加载到XmlDocument中?
用于数字签名,因此我无法替换特殊字符或格式化。
以下是JS的示例,但我需要.NET代码:
xmldoce.async = false;
xmldoce.validateOnParse = false;
xmldoce.preserveWhiteSpace = false;
xmldoce.resolveExternals = false;
xmldoce.loadXML(...);
修改
我需要将该内容加载到对象,由schema定义:
<complexType name="ObjectType" mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##any" processContents="lax"/>
</sequence>
</complexType>
也许可以使用XmlDocument吗?
答案 0 :(得分:1)
它不是一个xml。它似乎是一个HTML。您可以将其解码为
var html = HttpUtility.HtmlDecode(input);
并且很可能你需要HtmlAgilityPack来解析它。
下面的示例从字符串中提取一些有用的东西
var html = HttpUtility.HtmlDecode(input);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var result = doc.DocumentNode.Descendants("tr")
.Select(tr=>tr.Descendants("td").Select(td => td.InnerText).ToList())
.ToList();