开发者

writing to xml attributes

开发者 https://www.devze.com 2023-02-19 17:07 出处:网络
Hey all i have code to write to an xml doc from asp string filePath = Server.MapPath(\"../XML/MyXmlDoc.xml\");

Hey all i have code to write to an xml doc from asp

        string filePath = Server.MapPath("../XML/MyXmlDoc.xml");
        XmlDocument xmlDoc = new XmlDocument();

        try
        {
            xmlDoc.Load(filePath);
        }
        catch (System.IO.FileNotFoundException)
        {
            //if file is not found, create a new xml file
            XmlTextWriter xmlWriter = new XmlTextWriter(filePath, System.Text.Encoding.UTF8);
      开发者_开发知识库      xmlWriter.Formatting = Formatting.Indented;
            xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
            string startElement = "markings";
            xmlWriter.WriteStartElement(startElement);
            xmlWriter.Close();
            xmlDoc.Load(filePath);
        }
        XmlNode root = xmlDoc.DocumentElement;
        XmlElement mainNode = xmlDoc.CreateElement("mark");
        XmlElement childNode1 = xmlDoc.CreateElement("studentFirstName");
        XmlElement childNode2 = xmlDoc.CreateElement("studentLastName");
        XmlElement childNode3 = xmlDoc.CreateElement("className");
        XmlElement childNode4 = xmlDoc.CreateElement("marks");

        XmlText childTextNode1 = xmlDoc.CreateTextNode("");
        XmlText childTextNode2 = xmlDoc.CreateTextNode("");
        XmlText childTextNode3 = xmlDoc.CreateTextNode("");
        XmlText childTextNode4 = xmlDoc.CreateTextNode("");

        root.AppendChild(mainNode);

        //this portion can be added to a foreach loop if you need to add multiple records

        childTextNode1.Value = "John";
        childTextNode2.Value = "Doe";
        childTextNode3.Value = "Biology";
        childTextNode4.Value = "99%";

        mainNode.AppendChild(childNode1);
        childNode1.AppendChild(childTextNode1);
        mainNode.AppendChild(childNode2);
        childNode2.AppendChild(childTextNode2);
        mainNode.AppendChild(childNode3);
        childNode3.AppendChild(childTextNode3);
        mainNode.AppendChild(childNode4);
        childNode4.AppendChild(childTextNode4);

        //end of loop section

        xmlDoc.Save(filePath);

which works fine but i want to store the xml in the following structure

graph

   set name="John Doe" value="99";

/graph

instead of

name John Doe /name
value 99 /value

is there a way to store the xml like this? thanks all


You can add an attribute to your XmlElement by using the following syntax (C#) :

XmlAttribute value = xmlDoc.CreateAttribute("value");
childNode1.attributes.appendChild(value);    

Hope this helps !


This code will do what you're looking for:

XmlElement graph = xmlDoc.CreateElement("graph");
XmlAttribute name = xmlDoc.CreateAttribute("name");
name.Value = "John Doe";
XmlAttribute value = xmlDoc.CreateAttribute("value");
value.Value = "99";
graph.SetAttributeNode(name);
graph.SetAttributeNode(value);
mainNode.AppendChild(graph);
0

精彩评论

暂无评论...
验证码 换一张
取 消