English 中文(简体)
原标题:write attribute for sub elements of XML
  • 时间:2011-10-25 08:43:36
  •  标签:
  • xml
  • c#-3.0

我写了XMl,希望其结构如下:

<videos>
   <video>
         <type comment="xxxxxxxx"> test </type>
   <video>
</videos>

审判

    XmlTextWriter writer = new XmlTextWriter("C:\tes.xml");
    writer.Formatting = Formatting.Indented;
    writer.Indentation = 3;
    writer.WriteStartDocument();
    writer.WriteStartElement("Videos");
    writer.WriteStartElement("video");
    writer.WriteElementString("type", "test");
    writer.WriteAttributeString("comment", "xxxxxxxx");
    writer.WriteEndElement();

author.WriteAttributeString(“comment”),“xxxxxxxxxx” ; don t work , 任何关于如何插入评论的思想

问题回答
if (File.Exists(strFilename))
{
    // Open the XML file
    docXML.Load(strFilename);

    // Create a new attribute
    XmlAttribute atrXML = docXML.CreateAttribute("ISBN");
    atrXML.Value = "0-7907-3900-3";

    // Get a list of elements whose names are Video
    XmlNodeList nodVideos = docXML.GetElementsByTagName("video");
    // Since we will look for a specific video, get the list of all titles
    XmlNodeList nodTitles = docXML.GetElementsByTagName("title");

    // Visit each title
    for (int i = 0; i < nodTitles.Count; i++)
    {
        // Look for a video whose title is "Her Alibi"
        if (nodTitles[i].InnerText.Equals("Her Alibi"))
        {
            // Once you find that video, add the new attribute to it
            ((XmlElement)(nodVideos[i])).SetAttributeNode(atrXML);
        }
    }

    docXML.Save("videos.xml");
}

采用XML文件,而不是核对以下代码:

string strFilename = "videos.xml";
        XmlDocument docXML = new XmlDocument();

        if (File.Exists(strFilename))
        {
            // Open the XML file
            docXML.Load(strFilename);

            // Create an attribute and add it to the root element
            docXML.DocumentElement.SetAttribute("FileDesc",
                               "Personal Video Collection");
            docXML.Save("videos.xml");
        }

我使用了类似的东西。

    writer.WriteStartElement("Patient_History");
    writer.WriteAttributeString("Type", "All");
    writer.WriteString("Control+H");
    writer.WriteEndElement();

它的工作非常好。





相关问题
how to represent it in dtd?

I have two element action and guid. guid is a required field when action is add. but when action is del it will not appear in file. How to represent this in dtd ?

.Net application configuration add xml-data

I need to add xml-content to my application configuration file. Is there a way to add it directly to the appSettings section or do I need to implement a configSection? Is it possible to add the xml ...

XStream serializing collections

I have a class structure that I would like to serialize with Xstream. The root class contains a collection of other objects (of varying types). I would like to only serialize part of the objects that ...

MS Word splits words in its XML format

I have a Word 2003 document saved as a XML in WordProcessingML format. It contains few placeholders which will be dynamically replaced by an appropriate content. But, the problem is that Word ...

Merging an XML file with a list of changes

I have two XML files that are generated by another application I have no control over. The first is a settings file, and the second is a list of changes that should be applied to the first. Main ...

How do I check if a node has no siblings?

I have a org.w3c.dom.Node object. I would like to see if it has any other siblings. Here s what I have tried: Node sibling = node.getNextSibling(); if(sibling == null) return true; else ...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

热门标签