3

XMLを作成し、それを文字列として返す必要があります。誰かが使用して次のXMLを作成する方法を教えてもらえますXmlDocumentか?

<outputs>
  <output name="" value="" type=""></output>
  <output name="" value="" type=""></output>
  <output name="" value="" type=""></output>
</outputs>

アップデート

var xmlDocument = new XmlDocument();

            var xmlNode=xmlDocument.CreateNode(XmlNodeType.XmlDeclaration,"outputs","namespace");
            xmlDocument.AppendChild(xmlNode);

            var xmlElement = xmlDocument.CreateElement("", "output", "");
            xmlDocument.AppendChild(xmlElement);
4

4 に答える 4

11

XDocument代わりに使用することを検討する必要があると思いますXmlDocument

var doc = new XDocument(new XElement("outputs",
                            new XElement("output",
                                new XAttribute("name", ""),
                                new XAttribute("value", ""),
                                new XAttribute("type", "")),
                            new XElement("output",
                                new XAttribute("name", ""),
                                new XAttribute("value", ""),
                                new XAttribute("type", "")),         
                            new XElement("output",
                                new XAttribute("name", ""),
                                new XAttribute("value", ""),
                                new XAttribute("type", ""))));

xmlを文字列に簡単に書き込むことができます。

var myXmlString = doc.ToString();

XDocument.Parse()静的メソッドでも同じ目標を達成できます。

var doc = XDocument.Parse("<outputs><output></output> (...) </outputs>");

ループを使用してコンテンツを追加することもできます。

var doc = new XDocument(new XElement("outputs"));
var root = doc.Root;
foreach(var o in outputs)
{
    root.Add(new XElement("output",
                 new XAttribute("name", o.Name),
                 new XAttribute("value", o.Value),
                 new XAttribute("type", o.Type)));
}
于 2013-02-26T07:40:13.883 に答える
2
//Create XmlDocument
XmlDocument xmlDoc = new XmlDocument();

//Create the root element
XmlNode outputsElement = xmlDoc.CreateElement("outputs");

//Create the child element
XmlElement Element = xmlDoc.CreateElement("output");

//Create "name" Attribute
XmlAttribute nameAtt = xmlDoc.CreateAttribute("name");
Element.Attributes.Append(nameAtt);

//Create "value" Attribute
XmlAttribute valueAtt = xmlDoc.CreateAttribute("value");
Element.Attributes.Append(valueAtt);

//Create "type" Attribute
XmlAttribute typeAtt = xmlDoc.CreateAttribute("type");
Element.Attributes.Append(typeAtt);

//Append child element into root element
outputsElement.AppendChild(Element);

そしてそれを文字列として返すには:xmlDoc.OuterXml;

于 2013-02-26T07:49:29.417 に答える
1
        string str = "<outputs><output name=\"\" value=\"\" type=\"\"></output><output name=\"\" value=\"\" type=\"\"></output><output name=\"\" value=\"\" type=\"\"></output></outputs>";

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(str);

そして、文字列を再度作成するため。

        string toString = string.Empty;
        using (StringWriter stringWriter = new StringWriter())
        {
            XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);

            doc.WriteTo(xmlTextWriter);

            toString = stringWriter.ToString();
        }
于 2013-02-26T07:40:33.913 に答える
0

これは非常に役立ちます。これは、xmlファイルの読み取りと書き込みの方法に関する優れた例です。

http://www.c-sharpcorner.com/UploadFile/mahesh/ReadWriteXMLTutMellli2111282005041517AM/ReadWriteXMLTutMellli21.aspx

c#コードを使用して要素とXMLファイル全体を作成する方法に関するサンプルコード:

 static void Main(string[] args)
    {
        // Create a new file in C:\\ dir
        XmlTextWriter textWriter = new XmlTextWriter("C:\\myXmFile.xml", null);
        // Opens the document
        textWriter.WriteStartDocument();
        // Write comments
        textWriter.WriteComment("First Comment XmlTextWriter Sample Example");
        textWriter.WriteComment("myXmlFile.xml in root dir");
        // Write first element
        textWriter.WriteStartElement("Student");
        textWriter.WriteStartElement("r", "RECORD", "urn:record");
        // Write next element
        textWriter.WriteStartElement("Name", "");
        textWriter.WriteString("Student");
        textWriter.WriteEndElement();
        // Write one more element
        textWriter.WriteStartElement("Address", ""); textWriter.WriteString("Colony");
        textWriter.WriteEndElement();
        // WriteChars
        char[] ch = new char[3];
        ch[0] = 'a';
        ch[1] = 'r';
        ch[2] = 'c';
        textWriter.WriteStartElement("Char");
        textWriter.WriteChars(ch, 0, ch.Length);
        textWriter.WriteEndElement();
        // Ends the document.
        textWriter.WriteEndDocument();
        // close writer
        textWriter.Close();
    }
于 2013-02-26T07:39:30.703 に答える