C# XML文件和XML格式字符串(string类型)的互相转换

各位大神,小弟有个问题请教,希望得到各位的帮助。C#,VS2010下,我有个生成好的XML格式文件,存储路径是“E://Upload.Xml",现在我想实现将该xml格式的文件读出,把其中的内容转换成string字符串类型的,网上有个方法是”“System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.InnerXml;
doc.InnerXml是xml档的一个属性(stirng),显示的就是xml的内容字符串.”“
但是我不知道这个方法怎么与我“E://Upload.Xml"这个实际的xml文档联系起来,还请各位给出完整的代码。第二个问题是,对于xml格式的字符串,比如,<?xml version="1.0" encoding="utf-8" ?>
<custinfo>
<custname>123</custname>
<telno>456</telno>
</custinfo> ,我又怎么在c#,VS下,把它转换成“E://Dowload.Xml"形式的xml文件,也请给出完整代码。小弟不才,恳请各位帮助,若能调试成功,小弟再追加30分!

    互相转换主要有两种。

    XmlDocument xdoc = new XmlDocument();
    xdoc.LoadXml(这里是你的xml字符串);

    XmlDocument xdoc = new XmlDocument();
    xdoc.Load(这里是你的xml文件)。

    string是C++、java等编程语言中的字符串。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。

    String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象.这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似.

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(这里是你的xml字符串);
或者
XmlDocument xdoc = new XmlDocument();
xdoc.Load(这里是你的xml文件);

然后
xdoc.InnerXml 是你的xml字符串
xdoc.Save(这里是你的xml文件)追问

”xdoc.InnerXml “报错了,它说只有assignment、call、increment和new对象表达式可用作语句。还有,我要使用这个string型的字符串,是用xdoc还是用innerxml??

追答

我再说清楚一点吧。

XmlDocument是一个类型,用来代表Xml文档。
它可以从字符串生成,也可以从文件读入;(两种方式输入)
它可以生成字符串,也可以存入文件。(两种方式输出)
你要用字符串的话,就
string strXml = xdoc.InnerXml; 然后对strXml干你要干的事

追问

恩恩,能调了,最后一个问题,如果我想在LoadXml里放我的xml字符串,

123
456

它说我有换行符,要报错,我应该怎么做?取消格式、间隔?

追答

xdoc.LoadXml(@"

123
456
");

字符串前面加上@以后里面就可以写换行符了

追问

我看网上说”C#使用LoadXML要求传入的字符串必须为UTF-16编码“,我这是UTF-8编码啊?怎么 弄啊?而是加了@还是报错,”只有assignment、call、increment和new对象表达式可用作语句“

追答

你到底干了什么……能贴一下代码或者代码截图吗?调用LoadXML那里的

追问

我就把一个xml文件的内容完完全全粘贴进去,再加了个”“和一个@啊,其他的什么也没干啊!
还有网上说”C#使用LoadXML要求传入的字符串必须为UTF-16编码“,我这是UTF-8编码,怎么改啊??

追答

直接贴到源代码里面的话和编码没有关系啊
所以还是想看一下你代码里面是什么样的,这样最直接

追问

调好了,非常感谢你!你能留下你的扣扣吗

本回答被提问者采纳
第2个回答  2013-04-13
注意xml字符串中的"
用 @定义字符串的时候 " 要变 ""


string xml=@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<custinfo>
<custname>123</custname>
<telno>456</telno>
</custinfo>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xml);

编码什么的不知道你从哪里看的, 你的xml头部声明中已经声明了 encoding="utf-8" 了 为什么要用urf16?

建议自己试一下本回答被网友采纳
相似回答