2013-04-09 64 views
13

如何将XML文件写入字符串变量? 这里是我的代码,该变量的内容应该返回一个XML字符串:将XML文件转换为字符串类型

public string GetValues2() 
    { 
     string content = ""; 
     XmlTextWriter textWriter = new XmlTextWriter(content, null); 
     textWriter.WriteStartElement("Student"); 
     textWriter.WriteStartElement("r", "RECORD", "urn:record"); 
     textWriter.WriteStartElement("Name", ""); 
     textWriter.WriteString("Student"); 
     textWriter.WriteEndElement(); 
     textWriter.Close(); 

     return contents; 

    } 
+0

当我尝试这个程序说我需要定义一个路径而不是内容 – Pedram 2013-04-09 07:18:08

+0

是否要将xml文件读入字符串。我对么? – Sachin 2013-04-09 07:20:49

+1

如果你想创建'xml'文件,然后把它分配给'string''变量'使用Linq 2 Xml这是最快的方法。 – harry180 2013-04-09 07:22:35

回答

35

像这样的事情

string xmlString = System.IO.File.ReadAllText(fileName); 

这里是很好的答案创建XmlDocument XDocument or XMLDocument

+0

谢谢你回答我的问题:) – Pedram 2013-04-09 07:39:04

+0

让我试试这个 – Lijo 2016-10-23 18:14:41

1

HI Pedram您可以尝试以下代码

XmlDocument doc = new XmlDocument(); 

doc.LoadXml("yourXMLPath"); 
StringWriter sw = new StringWriter(); 
XmlTextWriter tx = new XmlTextWriter(sw); 
doc.WriteTo(tx); 
sw.ToString(); 
+0

谢谢,但我想生成一个XML文件并保存到一个字符串变量,我不能加载或保存文件到硬盘或从硬盘保存 – Pedram 2013-04-09 07:25:48

1

尝试这个 -

XmlDocument doc = new XmlDocument(); 
doc.LoadXml(your text string); 

StringBuilder sb = new StringBuilder(); 
foreach (XmlNode node in doc.DocumentElement.ChildNodes) 
{ 
    sb.Append(char.ToUpper(node.Name[0])); 
    sb.Append(node.Name.Substring(1)); 
    sb.Append(' '); 
    sb.AppendLine(node.InnerText); 
} 
return sb; 

对此看看too-

StringWriter sw = new StringWriter(); 
    XmlTextWriter tx = new XmlTextWriter(sw); 
    myxml.WriteTo(tx); 

    string str = sw.ToString();// 
    return str; 

如果你真的想创建一个新的XmlDocument然后做这个

XmlDocument newxmlDoc= myxml