我正在构建一个聊天解析器,它应该替换描述带有指向相关表情符号文件链接的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\" />";
}
这增加了文本末尾的所有表情符号,但无法将它们放在文本中。
答案 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/