代码之家  ›  专栏  ›  技术社区  ›  Przemysław Michalski

C xmltextreader:html实体替换

  •  1
  • Przemysław Michalski  · 技术社区  · 14 年前

    我有一个带有如下标记的XML文件:

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

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

    dzia&#322;owa
    

    如何替换XML中的HTML实体号以获得类似这样的结果:“dziawa”?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Graham Clark    14 年前

    示例中唯一的HTML实体是 &amp; . 然后你会看到一些普通的文字,上面写着 #322; . 你要么想要

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

    这将给“Dzia&owa”(可能不是你想要的)

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

    这会给“Dziawa”

        2
  •  0
  •   Przemysław Michalski    14 年前

    我认为我解决了部分问题(将数字编码为字符):

    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;
            }
    
    推荐文章