2012-05-18 28 views
0
<myroot> 
    some data. 
</myroot> 

我有一個xml文件,上面有一些數據。 我想XMLTextReader C#

之間

<myroot> and </myroot> 
所有數據來爲字符串變量。

有一些限制我,那是我怎麼能做到這一點 我應該只使用XmlTextReader的這個只是使用的XDocument

+0

你不能使用'XDocument',因爲你不能引用'System.Xml.Linq'?在這種情況下,你可以使用'XmlDocument'。萬一不要因爲不能使用Linq-to-Xml而去解析Xml數據的字符串。 – Filburt

+0

我不使用XDocument,因爲它比閱讀器慢! –

回答

0

你需要的XmlNodeList和foreach循環後要經過使用XmlTextReader的有出節點。 xmlNode類型具有innerHtml屬性。對於例如:myxmlNode.SelectSingleNode(「// REVNR」)。InnerText

0

多數民衆贊成是一種方式來做到這一點。下面就如何在一個非常基本的形式讀取XML一個簡單的例子: 我肯定你創造一些邏輯與它

XmlTextReader reader = new XmlTextReader ("books.xml"); 

while (reader.Read()) 
{ 
    switch (reader.NodeType) 
    { 
     case XmlNodeType.Element: // The node is an element. 
      Console.Write("<" + reader.Name); 
      Console.WriteLine(">"); 
      break; 
     case XmlNodeType.Text: //Display the text in each element. 
      Console.WriteLine (reader.Value); 
      break; 
     case XmlNodeType. EndElement: //Display the end of the element. 
      Console.Write("</" + reader.Name); 
     Console.WriteLine(">"); 
      break; 
    } 
} 
0

如果有<myroot>沒有子節點,那麼你的選擇是XmlReader.ReadElementContentAsString

string content = reader.ReadElementContentAsString(); 

ReadElementContentAsString消耗當前節點並將讀取器推進到下一個元素。

如果有任何子節點,那麼它取決於你想要做什麼。如果你需要內在的XML你應該去亞當的解決方案。如果您需要子節點的內容,則必須遞歸遍歷XML。爲了幫助你,你需要解釋你到底想要達到什麼目的。