返回首页

您好,

我有以下的XML行:


<a>

<parm name="InstallPhase" value="install" />

</a>

但是当我用下面的代码,我得到的中间线(元素与属性,但没有价值)为:

{C}
如何才能预防?这里是我的代码
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();

            xmlWriterSettings.NewLineOnAttributes = true;

            xmlWriterSettings.Indent = true;

            XmlTextReader reader = new XmlTextReader(@"c:\c.xml");

            XmlTextWriter writer = new XmlTextWriter(@"c:\b.xml", null);

            writer.Formatting = Formatting.Indented;

            while (reader.Read())

            {

                switch (reader.NodeType)

                {

                    case XmlNodeType.Element: // The node is an element.

                        Console.Write("<" + reader.Name);

                        writer.WriteStartElement(reader.Name);

                        //writer.

                        Console.WriteLine(">");

                        if (reader.HasAttributes)

                        {

                            Console.WriteLine(reader.Name + " ------------------Attribute");

                            for (int i = 0; i < reader.AttributeCount; i++)

                            {

                                reader.MoveToAttribute(i);

                                Console.WriteLine("Nam: " + reader.Name + ", Value: " + reader.Value);

                                writer.WriteAttributeString(reader.Name, reader.Value);

                            }

                            reader.MoveToElement();

                        }

                        //writer.WriteElementString(reader.Name, null);

                        break;

                    case XmlNodeType.Text: //Display the text in each element.

                        Console.WriteLine(reader.Value);

                        //writer.WriteString(reader.Value);

                        break;

                    case XmlNodeType.EndElement: //Display the end of the element.

                        Console.Write("                       Console.WriteLine(">");

                        writer.WriteFullEndElement();

                        break;

                    case XmlNodeType.XmlDeclaration:

                    case XmlNodeType.ProcessingInstruction:

                        writer.WriteProcessingInstruction(reader.Name, reader.Value);

                        break;

                    case XmlNodeType.Comment:

                        writer.WriteComment(reader.Value);

                        break;

                        

                }

            }

            reader.Close();

            writer.Close();

回答

评论会员: 时间:2