我有一个xml字符串内容,在解析它之前,我想在标记属性中添加双引号,这样它就是有效的xml:
"<fields>
<f id=page-number>OP</f>
<f id=presenter>MA</f>
<f id=title>OPENER</f>
<f id=type>CLIP</f>
<f id=graphic></f>
<f id=video-id></f>
<f id=audiochannel></f>
<f id=event-status></f>
<f id=audio-time uec>26</f>
<f id=back-time uec>@41410</f>
<f id=editor></f>
<f id=total-time>26</f>
<f id=cume-time></f>
<f id=still-id></f>
<f id=app1-1>SF</f>
<f id=var-3></f>
<f id=modify-by>scrivensl</f>
<f id=modify-date>1571272301</f>
<f id=status>OK</f>
<f id=app3-1></f>
<f id=air-date>1571272300</f>
</fields>"
List<string> patternList = new List<string>() { @"<fields[^>]*>([\s\S]*)</fields>"};
foreach (var item in patternList)
{
matchedContent = getContent(item, xmlData);
XElement xmlTree = XElement.Parse(matchedContent);
}在解析之前,我想在标签属性中添加双引号,这方面的代码仍未完成。
public string getContent(string patternToMatch, string content)
{
// Instantiate the regular expression object.
Regex r = new Regex(patternToMatch, RegexOptions.IgnoreCase);
return r.Match(content).ToString();
}发布于 2020-04-10 14:33:00
您的文本不是超文本标记语言,但是仍然可以使用HtmAgilityPack对其进行规范化。
var orgxml = @"<fields>
<f id=page-number>OP</f>
...
<f id=app3-1></f>
<f id=air-date>1571272300</f>
</fields>";
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(orgxml);
string cleanxml;
using (var sw = new StringWriter())
{
doc.Save(sw);
cleanxml = sw.ToString();
}cleanxml现在包含
<fields>
<f id="page-number">OP</f>
...
<f id="app3-1"></f>
<f id="air-date">1571272300</f>
</fields>https://stackoverflow.com/questions/61118800
复制相似问题