dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/System.Xml XmlTextReader.cs,1.14,1.15


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/System.Xml XmlTextReader.cs,1.14,1.15
Date: Fri, 10 Jan 2003 20:32:05 -0500

Update of /cvsroot/dotgnu-pnet/pnetlib/System.Xml
In directory subversions:/tmp/cvs-serv20664/System.Xml

Modified Files:
        XmlTextReader.cs 
Log Message:


Fixed bugs in logic and implemented ReadOuterXml ReadInnerXml.


Index: XmlTextReader.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System.Xml/XmlTextReader.cs,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** XmlTextReader.cs    10 Jan 2003 23:33:31 -0000      1.14
--- XmlTextReader.cs    11 Jan 2003 01:32:03 -0000      1.15
***************
*** 704,709 ****
                                                if(structFlag != true)
                                                {
!                                                       throw new XmlException
!                                                               
(S._("Xml_Malformed"));
                                                }
                                                
--- 704,711 ----
                                                if(structFlag != true)
                                                {
!                                                       
builder.Append((char)ch);
!                                                       ch = ReadChar();
!                                                       AnalyzeChar(ch, false);
!                                                       break;
                                                }
                                                
***************
*** 789,792 ****
--- 791,795 ----
                                                nodeType = XmlNodeType.Text;
                                                ch = ReadChar();
+                                               value = builder.ToString();
                                                AnalyzeChar(ch, false);
                                                break;
***************
*** 859,862 ****
--- 862,866 ----
                                                return true;
                                }
+                               return false;
                        }
  
***************
*** 962,978 ****
                                
                                int ch;
!                               StringBuilder builder = new StringBuilder();
                                if(nodeType == XmlNodeType.Element)
                                {
!                                       MoveToContent();        
!                                       Read();
!                                       return value;
                                }
                                else if(nodeType == XmlNodeType.Attribute)
                                {
!                                       if(ReadAttributeValue() == true)
!                                       {
!                                               return value;
!                                       }
                                }
                        
--- 966,1008 ----
                                
                                int ch;
!                               StringBuilder buffer = new StringBuilder();
!                               builder = new StringBuilder();
                                if(nodeType == XmlNodeType.Element)
                                {
!                                       MoveToContent();
!                                       ReadChar();
!                                       while((ch = ReadChar()) != -1)
!                                       {
!                                               builder.Append((char)ch);
!                                               if((char)ch == '<' && 
(char)reader.Peek() == '/')
!                                               {
!                                                       ReadChar();
!                                                       while((ch = ReadChar()) 
!= -1)
!                                                       {
!                                                               
builder.Append((char)ch);
!                                                               if((char)ch == 
'>')
!                                                               {
!                                                                       break;
!                                                               }
!                                                               
buffer.Append((char)ch);
!                                                       }                       
                                
!                                                       if(buffer.ToString() == 
Name)
!                                                       {
!                                                               return 
builder.ToString(0,builder.Length - buffer.Length-2);
!                                                       } 
!                                                       else
!                                                       {
!                                                               // reset buffer
!                                                               buffer = new 
StringBuilder();
!                                                       }
!                                               }
!                                       }       
!                               
!                                       return String.Empty; 
                                }
                                else if(nodeType == XmlNodeType.Attribute)
                                {
!                                       Read();
!                                       return value;
                                }
                        
***************
*** 982,990 ****
  
        // Read the current node, including all markup.
-       [TODO]
        public override String ReadOuterXml()
                        {
!                               // TODO
!                               return null;
                        }
  
--- 1012,1050 ----
  
        // Read the current node, including all markup.
        public override String ReadOuterXml()
                        {
!                               builder = new StringBuilder();
!                               StringBuilder buffer = new StringBuilder();
!                               MoveToContent();
!                               int ch;
!                               String indexKey = "</" + Name + ">";
!                               builder.Append("<"+Name);
!                               while((ch = ReadChar()) != -1)
!                               {
!                                       builder.Append((char)ch);
!                                       if((char)ch == '<' && 
(char)reader.Peek() == '/')
!                                       {
!                                               ReadChar();
!                                               while((ch = ReadChar()) != -1)
!                                               {
!                                                       
builder.Append((char)ch);
!                                                       if((char)ch == '>')
!                                                       {
!                                                               break;
!                                                       }
!                                                       buffer.Append((char)ch);
!                                               }                               
                        
!                                               if(buffer.ToString() == Name)
!                                               {
!                                                       return 
builder.ToString();
!                                               } 
!                                               else
!                                               {
!                                                       // reset buffer
!                                                       buffer = new 
StringBuilder();
!                                               }
!                                       }       
!                               }
!                               return String.Empty; 
                        }
  





reply via email to

[Prev in Thread] Current Thread [Next in Thread]