【发布时间】:2015-10-24 06:44:13
【问题描述】:
我正在构建一个聊天解析器,该解析器应该将描述表情的 XML 标记(在字符串中)替换为具有相关表情文件链接的 HTML 图像标记。
聊天文本示例:
Hi there <ss type="tongueout">:p</ss><ss type="laugh">:D</ss>
应改为如下:
Hi there <img src="./Emoticons/toungeout.png" /><img src="./Emoticons/laugh.png" />
图片文件的名字都跟对应的“类型”属性一样。
这是我迄今为止尝试过的:
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\" />";
}
这会在文本末尾添加所有表情符号,但无法将它们放在文本中。
【问题讨论】:
-
我尝试了几个字符串和正则表达式替换函数
-
然后贴出你尝试过的和对应的结果
-
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\" />"; }这在文本末尾添加了所有表情符号,但无法将它们放入文本中。 -
考虑将其编辑到您的答案中。我自己帮不了你,但我相信其他人看到你努力后会的。