次の方法で共有


XmlTextReader.WhitespaceHandling プロパティ

空白の処理方法を指定する値を取得または設定します。

Public Property WhitespaceHandling As WhitespaceHandling
[C#]
public WhitespaceHandling WhitespaceHandling {get; set;}
[C++]
public: __property WhitespaceHandling get_WhitespaceHandling();public: __property void set_WhitespaceHandling(WhitespaceHandling);
[JScript]
public function get WhitespaceHandling() : WhitespaceHandling;public function set WhitespaceHandling(WhitespaceHandling);

プロパティ値

WhitespaceHandling 値の 1 つ。既定値は WhitespaceHandling.All で、Whitespace ノードと SignificantWhitespace ノードを返します。

例外

例外の種類 条件
ArgumentOutOfRangeException 無効な値を指定しています。
InvalidOperationException リーダーが閉じているとき (ReadState が ReadState.Closed のとき) にこのプロパティを設定します。

解説

このプロパティはいつでも変更でき、次の読み取り操作時に有効となります。

XmlTextReader は使用できる DTD 情報を持っていないため、 SignificantWhitepsace ノードは xml:space='preserve' スコープ内だけで返されます。

使用例

[Visual Basic, C#, C++] XML フラグメントを読み取る例を次に示します。

 
Imports System
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


[C#] 
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


[C++] 
#using <mscorlib.dll>
#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 = 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(S"{0}: <{1}>", __box(reader->NodeType), reader->Name);
         break;
      case XmlNodeType::Text:
         Console::WriteLine(S"{0}: {1}", __box(reader->NodeType), reader->Value);
         break;
      case XmlNodeType::EndElement:
         Console::WriteLine(S"{0}: </{1}>", __box(reader->NodeType), reader->Name);
         break;
      case XmlNodeType::Whitespace:
         Console::WriteLine(S"{0}:", __box(reader->NodeType));
         break;
      case XmlNodeType::SignificantWhitespace:
         Console::WriteLine(S"{0}:", __box(reader->NodeType));
         break;
      }       
   }           

   //Close the reader.
   reader->Close();     

}

int main(){

   //Create the XML fragment to be parsed.
   String* xmlFrag =S"<book> " 
                    S"  <title>Pride And Prejudice</title>" 
                    S"  <genre>novel</genre>" 
                    S"</book>"; 

   //Create the XmlNamespaceManager.
   NameTable* nt = new NameTable();
   XmlNamespaceManager* nsmgr = new XmlNamespaceManager(nt);

   //Create the XmlParserContext.
   XmlParserContext* context = new XmlParserContext(0, nsmgr, 0, XmlSpace::Default);

   Console::WriteLine(S"Read the XML and ignore all white space...");
   ReadXML(context, xmlFrag, WhitespaceHandling::None);

   Console::WriteLine(S"\r\nRead the XML including white space nodes...");
   ReadXML(context, xmlFrag, WhitespaceHandling::All);

}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

XmlTextReader クラス | XmlTextReader メンバ | System.Xml 名前空間