Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将XML文件转换为字符串类型_C#_Xml - Fatal编程技术网

C# 将XML文件转换为字符串类型

C# 将XML文件转换为字符串类型,c#,xml,C#,Xml,如何将XML文件写入字符串变量? 这是我的代码,变量内容应该返回一个XML字符串: public string GetValues2() { string content = ""; XmlTextWriter textWriter = new XmlTextWriter(content, null); textWriter.WriteStartElement("Student"); textWriter.Write

如何将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;

    }
像这样的

string xmlString =  System.IO.File.ReadAllText(fileName);
下面是创建
XmlDocument

嗨,佩德拉姆,你可以试试下面的代码

XmlDocument doc = new XmlDocument();

doc.LoadXml("yourXMLPath");
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
doc.WriteTo(tx);
sw.ToString();
试试这个-

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;
也看看这个-

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

    string str = sw.ToString();// 
    return str;
如果您真的想创建一个新的XmlDocument,那么就这样做

XmlDocument newxmlDoc= myxml
您可以尝试:

static string GetXmlString(string strFile)
{
    // Load the xml file into XmlDocument object.
    XmlDocument xmlDoc = new XmlDocument();
    try
    {
        xmlDoc.Load(strFile);
    }
    catch (XmlException e)
    {
        Console.WriteLine(e.Message);
    }
    // Now create StringWriter object to get data from xml document.
    StringWriter sw = new StringWriter();
    XmlTextWriter xw = new XmlTextWriter(sw);
    xmlDoc.WriteTo(xw);
    return sw.ToString();
}

或者只使用XmlDocument.InnerXml属性获取XML字符串

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;

当我尝试这个方法时,程序会说我需要定义一个路径而不是内容。您想将xml文件读入字符串吗。我说的对吗?如果您想创建
xml
文件,然后将其分配给
string
variable
使用Linq 2 xml,这是最快的方法。@Sachin:不,我想生成一个xml文件并将其保存到字符串变量中,我不能保存任何文件或使用硬盘中的任何文件,我感谢您的帮助help@harry180:谢谢,但是我该怎么做呢?谢谢,但我想生成一个XML文件并保存到字符串变量中,我不能将文件加载到硬盘或从硬盘中保存文件。请注意file.ReadAllText会锁定该文件。如果不希望锁定文件,则应将FileStream与StreamReader一起使用(在using语句中)。(var fileStream=newfilestream(filePath,FileMode.Open,FileAccess.Read,FileShare.ReadWrite))。如果使用XmlDocument.Load(),同样的注释也会锁定文件。避免使用流替代。这是@Kimtho6发布的答案的直接副本,如下所示: