c#中 如何解决xml格式的字符串中特殊字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中 如何解决xml格式的字符串中特殊字符相关的知识,希望对你有一定的参考价值。

你指的是XML字符转义吧?
& lt; < 小于号
& gt; > 大于号
& amp; & 和
& apos; ' 单引号
& quot; " 双引号

&后面的空格去掉
参考技术A 你是说生成xml的时候有些特殊符号会被替换掉是么?
比如<被替换成& lt; >被替换成& gt;
这样就行了 @"<" +@">"
参考技术B 能在清除一点吗?感觉是序列化的问题呀!

如何在 C# 中从包含 XML 的字符串中读取数据?

【中文标题】如何在 C# 中从包含 XML 的字符串中读取数据?【英文标题】:How to read the data from string contaning XML in c#? 【发布时间】:2012-08-17 08:13:10 【问题描述】:

我在这个问题上找到了很多答案,但他们都试图先将字符串转换为文件,然后尝试使用XmlDocument doc = new XmlDocument();解析它

我是c# 的新手。我的字符串格式是:

<a header = '0'> < row dc = '123' al = '45' msg = '1-st line'/> < row dc = '678' al = '8' msg = 'second-line'/> </a>

我正在尝试编写伪代码来解析它:

IF <a header> == 0
Then read from the second line to last line i.e. dc = 678 , al = 8, msg = second-line
ELSE read from the first line to last line i.e.  
  dc = 123 , al = 45, msg = 1-st line
 dc = 678 , al = 8, msg = second-line

之后我必须插入数据库。在应用上述条件时,什么是合适的解决方案?

【问题讨论】:

您是否考虑过使用 Linq to XML 来执行此功能? msdn.microsoft.com/en-us/vstudio/bb688087.aspx 查看“查询”部分,我发现 Linq to XML 现在是一种更简单的处理 XML 的方法。 Read a XML (from a string) and get some fields - Problems reading XML 的可能副本。此外,XML 文件中没有“行”,因此您应该停止尝试将它们视为存在。 【参考方案1】:

入门代码:

   XmlNode xmlNode = doc.SelectNode("/a");
   int value = xmlNode.Attributes["header"].Value;
   XmlNodes xmlNodes = xmlNode.SelectNodes("./row");
   foreach (XmlNode rowNode in XmlNodes)

【讨论】:

【参考方案2】:

您不必保存到文件来解析 XML。

var xml = "<a header='0'> <row dc='123' al='45' msg='1-st line'/> <row dc='678' al='8' msg='second-line'/> </a>";
var doc = XElement.Parse(xml);
var list = from x in doc.Descendants("row")
            select new 
            
                dc = (int)x.Attribute("dc"),
                al = (int)x.Attribute("al"),
                msg = (string)x.Attribute("msg")
            ;

这个简单的示例将为您提供一个匿名对象列表,然后您可以轻松地将其插入数据库。

【讨论】:

我强烈支持使用 Linq to XML

以上是关于c#中 如何解决xml格式的字符串中特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

带有特殊字符的 XML 在 C# 中转换为 Json

在 xml 中保留特殊字符

xml保存特殊符号的问题

XSL 编码特殊字符 XML 格式正确

如何让在Html中特殊字符不被转义

如何转义xml中的特殊字符