C#怎么读写类XML文件(无节点)
C#如何读写类XML文件(无节点)?
有文件结构如下:
<title>路由型与交换型互联网基础</title><author>程庆梅</author><price>27.00</price>
<title>计算机硬件技术基础</title><author>李继灿</author><price>25.00</price>
<title>软件质量保证与管理</title><author>朱少民</author><price>39.00</price>
<title>算法设计与分析</title><author>王红梅</author><price>23.00</price>
请教各位老师,C#如何对这样的文件进行读写操作?
------解决思路----------------------
------解决思路----------------------
------解决思路----------------------
这种格式能否使用XmlTextReader读取呢?
答案是否定的!
因为你缺少根节点,所以根本不是 XML 文档
即便是配上根节点,XmlTextReader 也不会将 title、author、price 成组处理,因为还缺少了他们的父级节点
但是你可以这样处理:
每次从文件中读取一行
对读的的数据做 XElement.Parse("<root>" + txt + "</root>")
这样就得到了含有 title、author、price 三个成员的 XElement
这个过程和 XmlTextReader 的实际工作过程是一致的
有文件结构如下:
<title>路由型与交换型互联网基础</title><author>程庆梅</author><price>27.00</price>
<title>计算机硬件技术基础</title><author>李继灿</author><price>25.00</price>
<title>软件质量保证与管理</title><author>朱少民</author><price>39.00</price>
<title>算法设计与分析</title><author>王红梅</author><price>23.00</price>
请教各位老师,C#如何对这样的文件进行读写操作?
------解决思路----------------------
static void LoadXml()
{
string txt = @"<title>路由型与交换型互联网基础</title><author>程庆梅</author><price>27.00</price>
<title>计算机硬件技术基础</title><author>李继灿</author><price>25.00</price>
<title>软件质量保证与管理</title><author>朱少民</author><price>39.00</price>
<title>算法设计与分析</title><author>王红梅</author><price>23.00</price>";
XElement root = XElement.Parse("<root>" + txt + "</root>");
foreach(var ele in root.Elements())
{
Console.WriteLine(ele.Value);
}
}
------解决思路----------------------
static void LoadXml()
{
string txt = @"<title>路由型与交换型互联网基础</title><author>程庆梅</author><price>27.00</price>
<title>计算机硬件技术基础</title><author>李继灿</author><price>25.00</price>
<title>软件质量保证与管理</title><author>朱少民</author><price>39.00</price>
<title>算法设计与分析</title><author>王红梅</author><price>23.00</price>";
string xml = "<root>" + txt + "</root>";
XElement root = XElement.Parse(xml);
foreach (var ele in root.Elements())
{//读取
Console.WriteLine(ele.Value);
}
Console.WriteLine("#######################");
root.Add(new XElement("title", "测试新增"));//写
Console.WriteLine(Regex.Replace(root.ToString(), @"[\n\r]*</?root>[\n\r]*", string.Empty));
}
------解决思路----------------------
这种格式能否使用XmlTextReader读取呢?
答案是否定的!
因为你缺少根节点,所以根本不是 XML 文档
即便是配上根节点,XmlTextReader 也不会将 title、author、price 成组处理,因为还缺少了他们的父级节点
但是你可以这样处理:
每次从文件中读取一行
对读的的数据做 XElement.Parse("<root>" + txt + "</root>")
这样就得到了含有 title、author、price 三个成员的 XElement
这个过程和 XmlTextReader 的实际工作过程是一致的