C# XmlTextReader:html 实体替换

发布于 2024-09-28 06:34:06 字数 248 浏览 7 评论 0原文

我有带有这样的标签的 xml 文件:

<Question>dzia&amp;#322;owa</Question>

我正在使用 XmlTextReader 读取此文件,对于此标签,我得到如下内容:

dzia&#322;owa

如何替换 xml 中的 html 实体编号以获得如下内容:“działowa”?

I have xml file with TAG like this:

<Question>dzia&#322;owa</Question>

I'm reading this file using XmlTextReader and for this TAG I get something like this:

działowa

How to replace html entity numbers inside my xml to get something like this: "działowa"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人生百味 2024-10-05 06:34:06

示例中唯一的 HTML 实体是 &。然后您会得到一些普通文本,内容为 #322;。您要么想要

<Question>dzia&łowa</Question>

哪个给出“dzia&łowa”(可能不是您想要的)

,要么

<Question>działowa</Question>

想要哪个给出“działowa”

The only HTML entity in your sample is &. You've then got some normal text that says #322;. You either want

<Question>dzia&łowa</Question>

which would give "dzia&łowa" (probably not what you want)

or

<Question>działowa</Question>

which would give "działowa"

咽泪装欢 2024-10-05 06:34:06

我想我解决了部分问题(将 &#number; 编码为 char):

public static string EntityNumbersToEntityValues(string s)
        {
            Match match = Regex.Match(s, @"&#(\d+);", RegexOptions.IgnoreCase);
            while(match.Success)
            {
                string v = match.Groups[1].Value;
                string c = char.ConvertFromUtf32(int.Parse(v));
                s = Regex.Replace(s, string.Format("&#{0};", v), c);
                match = match.NextMatch();
            }           
            return s;
        }

I think I solved part of the problem (encoding &#number; to char):

public static string EntityNumbersToEntityValues(string s)
        {
            Match match = Regex.Match(s, @"&#(\d+);", RegexOptions.IgnoreCase);
            while(match.Success)
            {
                string v = match.Groups[1].Value;
                string c = char.ConvertFromUtf32(int.Parse(v));
                s = Regex.Replace(s, string.Format("&#{0};", v), c);
                match = match.NextMatch();
            }           
            return s;
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文