首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向作为字符串内容的xml标记属性添加双引号

如何向作为字符串内容的xml标记属性添加双引号
EN

Stack Overflow用户
提问于 2020-04-09 18:12:26
回答 1查看 75关注 0票数 1

我有一个xml字符串内容,在解析它之前,我想在标记属性中添加双引号,这样它就是有效的xml:

代码语言:javascript
复制
"<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);
}

在解析之前,我想在标签属性中添加双引号,这方面的代码仍未完成。

代码语言:javascript
复制
public string getContent(string patternToMatch, string content)
{
   // Instantiate the regular expression object.
    Regex r = new Regex(patternToMatch, RegexOptions.IgnoreCase);
     return r.Match(content).ToString();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 14:33:00

您的文本不是超文本标记语言,但是仍然可以使用HtmAgilityPack对其进行规范化。

代码语言:javascript
复制
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现在包含

代码语言:javascript
复制
<fields>
<f id="page-number">OP</f>
...
<f id="app3-1"></f>
<f id="air-date">1571272300</f>
</fields>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61118800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档