2011-09-06 5 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 파일에 텍스트의 nodetype을 어떻게 지정합니까?

답변

3

당신은이 작업을 수행 할 필요가 없습니다 :

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

즉 도움말 텍스트 노드는 요소, 그것은 childNode에 그리고 형 TextNode

+0

감사 벤입니다 텍스트입니다. 나는 그걸 가지고 노는 것을 계속했고, 실제로 당신이 게시 한 후 약 2 분을 발견했습니다. Hehe, 내가 필요로하는 것은 하나 더 많은 독자였다. – Encryption

관련 문제