2011-09-06 35 views
4

我有一個XML文件,我需要閱讀以獲取一些文本值。我對reader.NodeType = XMLNodeType.Text有困難,並且理解NodeType.Text的節點是什麼。XmlReader和NodeTypes

我的XML閱讀器僅拾取NodeType = Element並忽略節點聲明之間的任何文本。

示例XML:

<?xml version="1.0" encoding="utf-8"?> 
<myxmlfile> 
    <ActivitiesHelp> 
    <helptext>Some text goes here I need to read.</helptext> 
    </ActivitiesHelp> 
</myxmlfile> 

我的代碼如下所示:

elementName = formName.Replace(" ", ""); 
while (reader.Read()) 
{ 
    // when we find an element node, we remember its name 
    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == elementName)) 
    { 
     reader.Read(); 
     //if the next node = 'helptext' then get that text data 
     if (reader.Name == "helptext") 
     { 
      // for text nodes...get the text values 
      if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue)) 
      { 
       formMessage = reader.Value; 
      } 
     } 
    } 
}  

if語句爲Nodetype == XmlNodeType.Text嗟如此。

我做錯了什麼,以及如何指定XML文件中的文本的節點類型?

回答

3

不要你需要這樣做:

if (reader.Name == "helptext") 
     { 
      reader.Read(); 
      if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue)) 
      { 
       formMessage = reader.Value; 
      } 
     } 

即幫助文件節點是一個元素,它的childnode和類型是TextNode

+0

感謝本的文本。我繼續玩它並進行調試,實際上在發佈後大約2分鐘後才發現!呵呵,我只需要一個讀者。 – Encryption