![](/img/trans.png)
[英]How can I read specific elements from XML string using XMLREADER in C#
[英]How can I get XmlReader to read my XML data in C#
我正在使用以下Microsoft示例代碼來讀取XML:
namespace ConsoleApplication1
{
class Program
{
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;
}
}
}
}
var OutputTextBlock.Text = output.ToString();
}
}
}
但這給我一個錯誤,指出OutputTextBlock不存在。
我試圖在此之前放置一個var,但仍然出現錯誤。 說隱式類型的變量必須被初始化。 有人可以告訴我我在做什么錯。
有沒有更簡單的方法可以做到這一點?
我發布了這個問題: 如何從Windows桌面上的XML文件中提取一個數據元素?
但是答案只是使用XmlReader。 我不太確定從哪里開始。 我想將另一個問題標記為已回答,但沒有人回答。
在你的代碼的問題無關,與XML -它只是它假定有一個叫做變量的代碼示例OutputTextBlock
。 這表明該演示代碼是在WPF應用而不是控制台應用的上下文中編寫的。
如果僅將代碼更改為:
Console.WriteLine(output.ToString());
那你應該沒事的
但是,我強烈建議改用LINQ to XML和XDocument
。 讀取XML文檔非常簡單:
String xmlString = @"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
XDocument doc = XDocument.Parse(xmlString);
然后,您可以在文檔等中找到特定的元素。有關更多詳細信息,請從MSDN上的LINQ to XML“根”頁面開始 。
實際上,在此示例中,您必須添加writer.Flush();。 在while(reader.Read())循環結束時,否則outpout保持為空。 在顯示輸出值之后,將代碼更改為:Console.WriteLine(output.ToString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.