C#String用其他标签替换XML标签

时间:2015-10-23 19:35:20

标签: c# html xml string

我正在构建一个聊天解析器,它应该替换描述带有指向相关表情符号文件链接的HTML图像标记的表情符号的XML标记(在字符串中)。

聊天文字示例:

Hi there <ss type="tongueout">:p</ss><ss type="laugh">:D</ss>

应更改为以下内容:

Hi there <img src="./Emoticons/toungeout.png" /><img src="./Emoticons/laugh.png" />

图像文件的名称都与相应的&#34;类型&#34; -attribute。

相同

这是我到目前为止所尝试的内容:

var smilies = XElement.Parse(text)
                      .Descendants("ss")
                      .Select(x => x.Attribute("type").Value); 

Regex.Replace(text, "<.*?>", String.Empty); 
foreach (var smily in smilies) 
{ 
    text += "<img src=\"./Emoticons/" + smily + ".png\" />";
} 

这增加了文本末尾的所有表情符号,但无法将它们放在文本中。

2 个答案:

答案 0 :(得分:0)

试试这个

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Globalization;


namespace ConsoleApplication53
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml =
              "<Root>" +
                  "<ss type=\"tongueout\">:p</ss><ss type=\"laugh\">:D</ss>" +
              "</Root>";

            XElement root = XElement.Parse(xml);

            XElement[]  img = new XElement[] {
                   new XElement("img", new XAttribute("src","./Emoticons/toungeout.png")), 
                   new XElement("img", new XAttribute("src", "./Emoticons/laugh.png")) 
            };

            XElement ss = root.Element("ss");
            ss.ReplaceWith(img);
        }

    }
}

答案 1 :(得分:0)

我终于找到了解决方案:

app/build/intermediates/binaries/debug/obj/