C# 使用C解析XML文件#
虽然这似乎是一个非常琐碎的问题,但我试图理解XMLReader类及其成员。给定一个XML文件,我想退出打印XML声明C# 使用C解析XML文件#,c#,xml,C#,Xml,虽然这似乎是一个非常琐碎的问题,但我试图理解XMLReader类及其成员。给定一个XML文件,我想退出打印XML声明 static void Main(string[] args) { StringBuilder output = new StringBuilder(); String xmlString = @"<?xml version='1.0'?> <!-- Th
static void Main(string[] args)
{
StringBuilder output = new StringBuilder();
String xmlString =
@"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
Console.WriteLine( output.ToString());
Console.ReadKey();
}
我仍然可以看到XML声明,即
<?xml version='1.0'?>
它说InvalidOperationException未处理。
你能解释一下吗?我没有完全了解情况。Set
ws.OmitXmlDeclaration=true在代码中使用code>来省略xml声明
static void Main(string[] args)
{
StringBuilder output = new StringBuilder();
String xmlString =
@"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.OmitXmlDeclaration = true;
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
//case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
Console.WriteLine( output.ToString());
Console.ReadKey();
}
static void Main(字符串[]args)
{
StringBuilder输出=新的StringBuilder();
字符串xmlString=
@"
使用子元素进行测试
";
//创建一个XmlReader
使用(XmlReader=XmlReader.Create(新StringReader(xmlString)))
{
XmlWriterSettings ws=新的XmlWriterSettings();
ws.OmitXmlDeclaration=true;
ws.Indent=true;
使用(XmlWriter=XmlWriter.Create(输出,ws))
{
//解析文件并显示每个节点。
while(reader.Read())
{
开关(reader.NodeType)
{
case XmlNodeType.Element:
writer.writeStart元素(reader.Name);
打破
案例XmlNodeType.Text:
writer.WriteString(reader.Value);
打破
//案例XmlNodeType.XmlDeclaration:
案例XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name,reader.Value);
打破
案例XmlNodeType.Comment:
writer.WriteComment(reader.Value);
打破
案例XmlNodeType.EndElement:
writer.writeFileLendElement();
打破
}
}
}
}
Console.WriteLine(output.ToString());
Console.ReadKey();
}
Setws.OmitXmlDeclaration=true在代码中使用code>来省略xml声明
static void Main(string[] args)
{
StringBuilder output = new StringBuilder();
String xmlString =
@"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.OmitXmlDeclaration = true;
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
//case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
Console.WriteLine( output.ToString());
Console.ReadKey();
}
static void Main(字符串[]args)
{
StringBuilder输出=新的StringBuilder();
字符串xmlString=
@"
使用子元素进行测试
";
//创建一个XmlReader
使用(XmlReader=XmlReader.Create(新StringReader(xmlString)))
{
XmlWriterSettings ws=新的XmlWriterSettings();
ws.OmitXmlDeclaration=true;
ws.Indent=true;
使用(XmlWriter=XmlWriter.Create(输出,ws))
{
//解析文件并显示每个节点。
while(reader.Read())
{
开关(reader.NodeType)
{
case XmlNodeType.Element:
writer.writeStart元素(reader.Name);
打破
案例XmlNodeType.Text:
writer.WriteString(reader.Value);
打破
//案例XmlNodeType.XmlDeclaration:
案例XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name,reader.Value);
打破
案例XmlNodeType.Comment:
writer.WriteComment(reader.Value);
打破
案例XmlNodeType.EndElement:
writer.writeFileLendElement();
打破
}
}
}
}
Console.WriteLine(output.ToString());
Console.ReadKey();
}
Setws.OmitXmlDeclaration=true在代码中使用code>来省略xml声明
static void Main(string[] args)
{
StringBuilder output = new StringBuilder();
String xmlString =
@"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.OmitXmlDeclaration = true;
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
//case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
Console.WriteLine( output.ToString());
Console.ReadKey();
}
static void Main(字符串[]args)
{
StringBuilder输出=新的StringBuilder();
字符串xmlString=
@"
使用子元素进行测试
";
//创建一个XmlReader
使用(XmlReader=XmlReader.Create(新StringReader(xmlString)))
{
XmlWriterSettings ws=新的XmlWriterSettings();
ws.OmitXmlDeclaration=true;
ws.Indent=true;
使用(XmlWriter=XmlWriter.Create(输出,ws))
{
//解析文件并显示每个节点。
while(reader.Read())
{
开关(reader.NodeType)
{
case XmlNodeType.Element:
writer.writeStart元素(reader.Name);
打破
案例XmlNodeType.Text:
writer.WriteString(reader.Value);
打破
//案例XmlNodeType.XmlDeclaration:
案例XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name,reader.Value);
打破
案例XmlNodeType.Comment:
writer.WriteComment(reader.Value);
打破
案例XmlNodeType.EndElement:
writer.writeFileLendElement();
打破
}
}
}
}
Console.WriteLine(output.ToString());
Console.ReadKey();
}
Setws.OmitXmlDeclaration=true在代码中使用code>来省略xml声明
static void Main(string[] args)
{
StringBuilder output = new StringBuilder();
String xmlString =
@"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.OmitXmlDeclaration = true;
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
//case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
Console.WriteLine( output.ToString());
Console.ReadKey();
}
static void Main(字符串[]args)
{
StringBuilder输出=新的StringBuilder();
字符串xmlString=
@"
使用子元素进行测试
";
//创造