0

次のような悪い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(...);

編集:

そのコンテンツをスキーマで定義されたオブジェクトにロードする必要があります。

<complexType name="ObjectType" mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##any" processContents="lax"/>
</sequence> 
</complexType>

たぶんそれはXmlDocumentなしで可能ですか?

4

1 に答える 1

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();
于 2012-11-29T09:49:21.640 に答える