您好,
我有以下的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();