XmlTextReader.WhitespaceHandling Свойство
Определение
Возвращает или задает значение, определяющее способ обработки символов-разделителей.Gets or sets a value that specifies how white space is handled.
public:
property System::Xml::WhitespaceHandling WhitespaceHandling { System::Xml::WhitespaceHandling get(); void set(System::Xml::WhitespaceHandling value); };
public System.Xml.WhitespaceHandling WhitespaceHandling { get; set; }
member this.WhitespaceHandling : System.Xml.WhitespaceHandling with get, set
Public Property WhitespaceHandling As WhitespaceHandling
Значение свойства
Одно из значений перечисления WhitespaceHandling.One of the WhitespaceHandling values. По умолчанию используется значение WhitespaceHandling.All
(возвращает узлы Whitespace
и SignificantWhitespace
).The default is WhitespaceHandling.All
(returns Whitespace
and SignificantWhitespace
nodes).
Исключения
Указано недопустимое значение.Invalid value specified.
Установка значения этого свойства после закрытия средства чтения (ReadState равно ReadState.Closed
).Setting this property when the reader is closed (ReadState is ReadState.Closed
).
Примеры
В следующем примере считывается фрагмент XML-кода.The following example reads an XML fragment.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
void ReadXML( XmlParserContext^ context, String^ xmlFrag, WhitespaceHandling ws )
{
//Create the reader and specify the WhitespaceHandling setting.
XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
reader->WhitespaceHandling = ws;
//Parse the XML and display each of the nodes.
while ( reader->Read() )
{
switch ( reader->NodeType )
{
case XmlNodeType::Element:
Console::WriteLine( "{0}: <{1}>", reader->NodeType, reader->Name );
break;
case XmlNodeType::Text:
Console::WriteLine( "{0}: {1}", reader->NodeType, reader->Value );
break;
case XmlNodeType::EndElement:
Console::WriteLine( "{0}: </{1}>", reader->NodeType, reader->Name );
break;
case XmlNodeType::Whitespace:
Console::WriteLine( "{0}:", reader->NodeType );
break;
case XmlNodeType::SignificantWhitespace:
Console::WriteLine( "{0}:", reader->NodeType );
break;
}
}
//Close the reader.
reader->Close();
}
int main()
{
//Create the XML fragment to be parsed.
String^ xmlFrag = "<book> "
" <title>Pride And Prejudice</title>"
" <genre>novel</genre>"
"</book>";
//Create the XmlNamespaceManager.
NameTable^ nt = gcnew NameTable;
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( nt );
//Create the XmlParserContext.
XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::Default );
Console::WriteLine( "Read the XML and ignore all white space..." );
ReadXML( context, xmlFrag, WhitespaceHandling::None );
Console::WriteLine( "\r\nRead the XML including white space nodes..." );
ReadXML( context, xmlFrag, WhitespaceHandling::All );
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main(){
//Create the XML fragment to be parsed.
string xmlFrag ="<book> " +
" <title>Pride And Prejudice</title>" +
" <genre>novel</genre>" +
"</book>";
//Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
//Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.Default);
Console.WriteLine("Read the XML and ignore all white space...");
ReadXML(context, xmlFrag, WhitespaceHandling.None);
Console.WriteLine("\r\nRead the XML including white space nodes...");
ReadXML(context, xmlFrag, WhitespaceHandling.All);
}
public static void ReadXML(XmlParserContext context, string xmlFrag, WhitespaceHandling ws){
//Create the reader and specify the WhitespaceHandling setting.
XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
reader.WhitespaceHandling = ws;
//Parse the XML and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine("{0}: <{1}>", reader.NodeType, reader.Name);
break;
case XmlNodeType.Text:
Console.WriteLine("{0}: {1}", reader.NodeType, reader.Value);
break;
case XmlNodeType.EndElement:
Console.WriteLine("{0}: </{1}>", reader.NodeType, reader.Name);
break;
case XmlNodeType.Whitespace:
Console.WriteLine("{0}:", reader.NodeType);
break;
case XmlNodeType.SignificantWhitespace:
Console.WriteLine("{0}:", reader.NodeType);
break;
}
}
//Close the reader.
reader.Close();
}
} // End class
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
'Create the XML fragment to be parsed.
Dim xmlFrag as string ="<book> " & _
" <title>Pride And Prejudice</title>" & _
" <genre>novel</genre>" & _
"</book>"
'Create the XmlNamespaceManager.
Dim nt as NameTable = new NameTable()
Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(nt)
'Create the XmlParserContext.
Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.Default)
Console.WriteLine("Read the XML and ignore all white space...")
ReadXML(context, xmlFrag, WhitespaceHandling.None)
Console.WriteLine()
Console.WriteLine("Read the XML including white space nodes...")
ReadXML(context, xmlFrag, WhitespaceHandling.All)
end sub
public shared sub ReadXML(context as XmlParserContext, xmlFrag as string, ws as WhitespaceHandling)
'Create the reader and specify the WhitespaceHandling setting.
Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
reader.WhitespaceHandling = ws
'Parse the XML and display each of the nodes.
while (reader.Read())
select case reader.NodeType
case XmlNodeType.Element:
Console.WriteLine("{0}: <{1}>", reader.NodeType, reader.Name)
case XmlNodeType.Text:
Console.WriteLine("{0}: {1}", reader.NodeType, reader.Value)
case XmlNodeType.EndElement:
Console.WriteLine("{0}: </{1}>", reader.NodeType, reader.Name)
case XmlNodeType.Whitespace:
Console.WriteLine("{0}:", reader.NodeType)
case XmlNodeType.SignificantWhitespace:
Console.WriteLine("{0}:", reader.NodeType)
end select
end while
'Close the reader.
reader.Close()
end sub
end class
Комментарии
Примечание
Начиная с .NET Framework 2,0 рекомендуется создавать XmlReader экземпляры с помощью XmlReader.Create метода, чтобы воспользоваться преимуществами новых функциональных возможностей.Starting with the .NET Framework 2.0, we recommend that you create XmlReader instances by using the XmlReader.Create method to take advantage of new functionality.
Это свойство можно изменить в любое время и вступит в силу при следующей операции чтения.This property can be changed at any time and takes effect on the next read operation.
Так как у объекта нет XmlTextReader
доступных сведений о DTD, SignificantWhitepsace
узлы возвращаются только в пределах xml:space='preserve'
области.Because the XmlTextReader
does not have DTD information available to it, SignificantWhitepsace
nodes are only returned within an xml:space='preserve'
scope.