XmlReader.Create 方法

定義

建立新的 XmlReader 實例。

多載

名稱 Description
Create(String, XmlReaderSettings, XmlParserContext)

利用指定的 URI、設定和上下文資訊來建立一個新 XmlReader 實例進行解析。

Create(TextReader, XmlReaderSettings, XmlParserContext)

利用指定的文字閱讀器、設定和上下文資訊來建立一個新的 XmlReader 實例進行解析。

Create(Stream, XmlReaderSettings, XmlParserContext)

利用指定的串流、設定和上下文資訊建立一個新 XmlReader 實例進行解析。

Create(Stream, XmlReaderSettings, String)

使用指定的串流、基礎 URI 和設定建立一個新 XmlReader 實例。

Create(XmlReader, XmlReaderSettings)

透過指定的 XML 讀取器與設定建立新 XmlReader 實例。

Create(TextReader, XmlReaderSettings, String)

透過指定的文字閱讀器、設定和基礎 URI 建立一個新 XmlReader 實例。

Create(TextReader, XmlReaderSettings)

使用指定的文字閱讀器和設定建立一個新 XmlReader 實例。

Create(Stream, XmlReaderSettings)

建立 XmlReader 一個新的實例,並使用指定的串流和設定。

Create(String)

建立 XmlReader 一個帶有指定 URI 的新實例。

Create(TextReader)

使用指定的文字閱讀器建立新 XmlReader 實例。

Create(Stream)

用指定的串流以預設設定建立一個新 XmlReader 實例。

Create(String, XmlReaderSettings)

使用指定的 URI 和設定建立一個新 XmlReader 實例。

範例

此範例會建立一個 XML 讀取器,以去除不重要的空白、刪除註解,並執行片段階段一致性檢查。

XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("books.xml", settings);
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.IgnoreWhitespace = true
settings.IgnoreComments = true
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)

下列範例使用具有預設認證的 XmlUrlResolver 來存取檔案。

// Set the reader settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreProcessingInstructions = true;
settings.IgnoreWhitespace = true;
' Set the reader settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.IgnoreComments = true
settings.IgnoreProcessingInstructions = true
settings.IgnoreWhitespace = true
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("http://ServerName/data/books.xml", settings);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver

' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("http://ServerName/data/books.xml", settings)

下列程式代碼會將讀取器實例包裝在另一個讀取器內。

XmlTextReader txtReader = new XmlTextReader("bookOrder.xml");
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("urn:po-schema", "PO.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(txtReader, settings);
Dim txtReader As XmlTextReader = New XmlTextReader("bookOrder.xml")
Dim settings As New XmlReaderSettings()
settings.Schemas.Add("urn:po-schema", "PO.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create(txtReader, settings)

此範例會鏈結讀取器以新增 DTD 和 XML 架構驗證。

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.DTD;
XmlReader inner = XmlReader.Create("book.xml", settings); // DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader outer = XmlReader.Create(inner, settings);  // XML Schema Validation
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.DTD
Dim inner As XmlReader = XmlReader.Create("book.xml", settings) ' DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd")
settings.ValidationType = ValidationType.Schema
Dim outer As XmlReader = XmlReader.Create(inner, settings)  ' XML Schema Validation

備註

大部分的 Create 重載都包含一個 settings 參數,該參數接受 XmlReaderSettings 對象。 您可以使用這個物件來:

  • 指定您想要在 XmlReader 物件上支援哪些功能。
  • 重複使用XmlReaderSettings物件來建立多個讀取器。 您可以使用相同的設定來建立具有相同功能的多個讀取器。 或者,您可以修改 實例上的 XmlReaderSettings 設定,並使用一組不同的功能來建立新的讀取器。
  • 將功能新增至現有的 XML 讀取器。 方法 Create 可以接受另一個 XmlReader 物件。 基礎 XmlReader 物件可以是使用者定義的讀取器、 XmlTextReader 物件,或您想要新增其他功能的另一個 XmlReader 實例。
  • 充分利用 XML 1.0(第四版) 建議的更佳一致性檢查和合規性等功能,這些建議僅適用於 XmlReader 靜態 Create 方法所建立的物件。

Note

雖然 .NET 包含 類別的具體實XmlReader作,例如 XmlTextReaderXmlNodeReaderXmlValidatingReader 類別,但建議您使用 XmlReader 方法建立Create實例。

預設設定

如果您使用 Create 不接受 XmlReaderSettings 物件的多載,則會使用下列預設讀取器設定:

設定 預設值
CheckCharacters true
ConformanceLevel ConformanceLevel.Document
IgnoreComments false
IgnoreProcessingInstructions false
IgnoreWhitespace false
LineNumberOffset 0
LinePositionOffset 0
NameTable null
DtdProcessing Prohibit
Schemas 空白 XmlSchemaSet 物件
ValidationFlags ProcessIdentityConstraints 啟用
ValidationType None
XmlResolver null

適用於常見案例的設定

以下是 XmlReaderSettings 您應該為一些一般 XML 讀取器案例設定的屬性。

需求 Set
數據必須是格式正確的 XML 檔。 ConformanceLevelDocument
數據必須是格式正確的 XML 剖析實體。 ConformanceLevelFragment
數據必須針對 DTD 進行驗證。 DtdProcessingParse
ValidationTypeDTD
數據必須根據 XML 架構進行驗證。 ValidationTypeSchema
使用SchemasXmlSchemaSet進行驗證。 請注意, XmlReader 不支援 XML-Data 縮減 (XDR) 架構驗證。
數據必須根據內嵌 XML 架構進行驗證。 ValidationTypeSchema
ValidationFlagsProcessInlineSchema
打字支援。 ValidationTypeSchema
Schemas XmlSchemaSet去使用。

XmlReader 不支援 XML-Data 縮減 (XDR) 架構驗證。

非同步程式設計

在同步模式中,方法 Create 會從檔案、數據流或文字讀取器的緩衝區讀取第一個數據區塊。 如果 I/O 作業失敗,這可能會拋出例外。 在非同步模式中,第一次 I/O 作業是讀取作業,因此在讀取作業發生時,會拋出例外狀況。

安全性考慮

根據預設,XmlReader 會使用 XmlUrlResolver 物件,其中沒有使用者認證來開啟資源。 這表示 XML 讀取器預設可以存取不需要認證的任何位置。 XmlResolver使用 屬性來控制資源的存取:

  • ThrowingResolver 來限制 XML 閱讀器可存取的資源,或是......
  • 設定 XmlResolvernull 以防止 XML 讀取器開啟任何外部資源。

Create(String, XmlReaderSettings, XmlParserContext)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

利用指定的 URI、設定和上下文資訊來建立一個新 XmlReader 實例進行解析。

public:
 static System::Xml::XmlReader ^ Create(System::String ^ inputUri, System::Xml::XmlReaderSettings ^ settings, System::Xml::XmlParserContext ^ inputContext);
public static System.Xml.XmlReader Create(string inputUri, System.Xml.XmlReaderSettings? settings, System.Xml.XmlParserContext? inputContext);
public static System.Xml.XmlReader Create(string inputUri, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext);
static member Create : string * System.Xml.XmlReaderSettings * System.Xml.XmlParserContext -> System.Xml.XmlReader
Public Shared Function Create (inputUri As String, settings As XmlReaderSettings, inputContext As XmlParserContext) As XmlReader

參數

inputUri
String

包含 XML 資料的檔案 URI。 XmlResolver物件上的XmlReaderSettings物件用來將路徑轉換成標準資料表示。 若 XmlResolvernull,則使用一個新的 XmlUrlResolver 物件。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

inputContext
XmlParserContext

解析 XML 片段所需的上下文資訊。 上下文資訊可能包括 XmlNameTable 使用、編碼、命名空間範圍、當前 xml:langxml:space 範圍、基礎 URI,以及文件類型定義。

這個值可以是 null

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

inputUri 值是 null

XmlReader 系統沒有足夠的權限來存取 XML 資料的位置。

NameTableNameTable 屬性都包含值。 (這些屬性中只能設定並使用其中一個 NameTable 屬性。)

URI 指定的檔案無法找到。

URI 格式不正確。

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

這表示他們 XmlReader 可以存取任何不需要驗證的地點。 如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以透過使用 XmlReader限制他們ThrowingResolver能存取的資源。

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(TextReader, XmlReaderSettings, XmlParserContext)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

利用指定的文字閱讀器、設定和上下文資訊來建立一個新的 XmlReader 實例進行解析。

public:
 static System::Xml::XmlReader ^ Create(System::IO::TextReader ^ input, System::Xml::XmlReaderSettings ^ settings, System::Xml::XmlParserContext ^ inputContext);
public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext);
public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings? settings, System.Xml.XmlParserContext? inputContext);
static member Create : System.IO.TextReader * System.Xml.XmlReaderSettings * System.Xml.XmlParserContext -> System.Xml.XmlReader
Public Shared Function Create (input As TextReader, settings As XmlReaderSettings, inputContext As XmlParserContext) As XmlReader

參數

input
TextReader

文字閱讀器,用以讀取 XML 資料。 文字讀取器回傳一串 Unicode 字元,因此 XML 宣告中指定的編碼不會被 XML 讀取器用來解碼資料串流。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

inputContext
XmlParserContext

解析 XML 片段所需的上下文資訊。 上下文資訊可能包括 XmlNameTable 使用、編碼、命名空間範圍、當前 xml:langxml:space 範圍、基礎 URI,以及文件類型定義。

這個值可以是 null

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

NameTableNameTable 屬性都包含值。 (這些屬性中只能設定並使用其中一個 NameTable 屬性。)

範例

以下範例建立 XmlReader 一個讀取 XML 片段的物件。

string xmlFrag ="<item rk:ID='abc-23'>hammer</item> " +
                        "<item rk:ID='r2-435'>paint</item>" +
                        "<item rk:ID='abc-39'>saw</item>";

// Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("rk", "urn:store-items");

// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(xmlFrag), settings, context);
Dim xmlFrag As String = "<item rk:ID='abc-23'>hammer</item> " & _
                                     "<item rk:ID='r2-435'>paint</item>" & _
                                     "<item rk:ID='abc-39'>saw</item>"

' Create the XmlNamespaceManager.
Dim nt As New NameTable()
Dim nsmgr As New XmlNamespaceManager(nt)
nsmgr.AddNamespace("rk", "urn:store-items")

' Create the XmlParserContext.
Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None)

' Create the reader. 
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
Dim reader As XmlReader = XmlReader.Create(New StringReader(xmlFrag), settings, context)

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(Stream, XmlReaderSettings, XmlParserContext)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

利用指定的串流、設定和上下文資訊建立一個新 XmlReader 實例進行解析。

public:
 static System::Xml::XmlReader ^ Create(System::IO::Stream ^ input, System::Xml::XmlReaderSettings ^ settings, System::Xml::XmlParserContext ^ inputContext);
public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext);
public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings? settings, System.Xml.XmlParserContext? inputContext);
static member Create : System.IO.Stream * System.Xml.XmlReaderSettings * System.Xml.XmlParserContext -> System.Xml.XmlReader
Public Shared Function Create (input As Stream, settings As XmlReaderSettings, inputContext As XmlParserContext) As XmlReader

參數

input
Stream

包含 XML 資料的串流。

XmlReader 會掃描串流的前幾個位元組,尋找位元組順序標記或其他編碼符號。 當編碼確定後,編碼會用來繼續讀取串流,處理則繼續以(Unicode)字元的串流方式解析輸入。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

inputContext
XmlParserContext

解析 XML 片段所需的上下文資訊。 上下文資訊可能包括 XmlNameTable 使用、編碼、命名空間範圍、當前 xml:langxml:space 範圍、基礎 URI,以及文件類型定義。

這個值可以是 null

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(Stream, XmlReaderSettings, String)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

使用指定的串流、基礎 URI 和設定建立一個新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::IO::Stream ^ input, System::Xml::XmlReaderSettings ^ settings, System::String ^ baseUri);
public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings? settings, string? baseUri);
public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings, string baseUri);
static member Create : System.IO.Stream * System.Xml.XmlReaderSettings * string -> System.Xml.XmlReader
Public Shared Function Create (input As Stream, settings As XmlReaderSettings, baseUri As String) As XmlReader

參數

input
Stream

包含 XML 資料的串流。

XmlReader 會掃描串流的前幾個位元組,尋找位元組順序標記或其他編碼符號。 當編碼確定後,編碼會用來繼續讀取串流,處理則繼續以(Unicode)字元的串流方式解析輸入。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

baseUri
String

讀取實體或文件的基礎 URI。 這個值可以是 null

安全說明 基礎 URI 用於解析 XML 文件的相對 URI。 不要使用來自不受信任來源的基礎 URI。

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(XmlReader, XmlReaderSettings)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

透過指定的 XML 讀取器與設定建立新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::Xml::XmlReader ^ reader, System::Xml::XmlReaderSettings ^ settings);
public static System.Xml.XmlReader Create(System.Xml.XmlReader reader, System.Xml.XmlReaderSettings settings);
public static System.Xml.XmlReader Create(System.Xml.XmlReader reader, System.Xml.XmlReaderSettings? settings);
static member Create : System.Xml.XmlReader * System.Xml.XmlReaderSettings -> System.Xml.XmlReader
Public Shared Function Create (reader As XmlReader, settings As XmlReaderSettings) As XmlReader

參數

reader
XmlReader

你想用作底層 XML 讀取器的物件。

settings
XmlReaderSettings

新實例的設定 XmlReader

物件的 XmlReaderSettings 一致性等級必須與底層讀取器的一致性等級相匹配,或必須設定為 Auto

傳回

一個包裹在指定 XmlReader 物件上的物件。

例外狀況

reader 值是 null

XmlReaderSettings 物件指定與底層讀取器的符合等級不一致,

-或-

標的 XmlReader 資產是 OR ErrorClosed 狀態。

範例

以下範例建立一個包裹在物件XmlReader周圍的驗證XmlNodeReader物件。

// Create the XmlNodeReader object.
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
XmlNodeReader nodeReader = new XmlNodeReader(doc);

// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:bookstore-schema", "books.xsd");
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);

// Create a validating reader that wraps the XmlNodeReader object.
XmlReader reader = XmlReader.Create(nodeReader, settings);
// Parse the XML file.
while (reader.Read());
' Create the XmlNodeReader object.
Dim doc As New XmlDocument()
doc.Load("books.xml")
Dim nodeReader As New XmlNodeReader(doc)

' Set the validation settings.
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:bookstore-schema", "books.xsd")
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack

' Create a validating reader that wraps the XmlNodeReader object.
Dim reader As XmlReader = XmlReader.Create(nodeReader, settings)
' Parse the XML file.
While reader.Read()
End While

備註

此方法允許你為底層 XmlReader 物件添加額外功能。 底層XmlReader物件可以是方法所建立XmlReader的另一個Create物件,或XmlReader是使用具體XmlReader實作所建立的物件。

預設且 XmlUrlResolver 無憑證時會用來存取任何外部資源,例如架構。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請利用該XmlResolver屬性指定XmlReaderSettings.XmlResolver一個具備必要憑證的 。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(TextReader, XmlReaderSettings, String)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

透過指定的文字閱讀器、設定和基礎 URI 建立一個新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::IO::TextReader ^ input, System::Xml::XmlReaderSettings ^ settings, System::String ^ baseUri);
public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings? settings, string? baseUri);
public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings, string baseUri);
static member Create : System.IO.TextReader * System.Xml.XmlReaderSettings * string -> System.Xml.XmlReader
Public Shared Function Create (input As TextReader, settings As XmlReaderSettings, baseUri As String) As XmlReader

參數

input
TextReader

文字閱讀器,用以讀取 XML 資料。 文字閱讀器回傳一串 Unicode 字元,因此 XML XmlReader 宣告中指定的編碼不會被用來解碼資料流。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

baseUri
String

讀取實體或文件的基礎 URI。 這個值可以是 null

安全說明 基礎 URI 用於解析 XML 文件的相對 URI。 不要使用來自不受信任來源的基礎 URI。

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(TextReader, XmlReaderSettings)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

使用指定的文字閱讀器和設定建立一個新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::IO::TextReader ^ input, System::Xml::XmlReaderSettings ^ settings);
public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings);
public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings? settings);
static member Create : System.IO.TextReader * System.Xml.XmlReaderSettings -> System.Xml.XmlReader
Public Shared Function Create (input As TextReader, settings As XmlReaderSettings) As XmlReader

參數

input
TextReader

文字閱讀器,用以讀取 XML 資料。 文字讀取器回傳一串 Unicode 字元,因此 XML 宣告中指定的編碼不會被 XML 讀取器用來解碼資料串流。

settings
XmlReaderSettings

XmlReader. 這個值可以是 null

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(Stream, XmlReaderSettings)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

建立 XmlReader 一個新的實例,並使用指定的串流和設定。

public:
 static System::Xml::XmlReader ^ Create(System::IO::Stream ^ input, System::Xml::XmlReaderSettings ^ settings);
public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings);
public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings? settings);
static member Create : System.IO.Stream * System.Xml.XmlReaderSettings -> System.Xml.XmlReader
Public Shared Function Create (input As Stream, settings As XmlReaderSettings) As XmlReader

參數

input
Stream

包含 XML 資料的串流。

XmlReader 會掃描串流的前幾個位元組,尋找位元組順序標記或其他編碼符號。 當編碼確定後,編碼會用來繼續讀取串流,處理則繼續以(Unicode)字元的串流方式解析輸入。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以使用以下方法之一來控制他們 XmlReader 能存取哪些資源:

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(String)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

建立 XmlReader 一個帶有指定 URI 的新實例。

public:
 static System::Xml::XmlReader ^ Create(System::String ^ inputUri);
public static System.Xml.XmlReader Create(string inputUri);
static member Create : string -> System.Xml.XmlReader
Public Shared Function Create (inputUri As String) As XmlReader

參數

inputUri
String

包含 XML 資料的檔案 URI。 這個 XmlUrlResolver 類別用來將路徑轉換成典型的資料表示。

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

inputUri 值是 null

XmlReader 系統沒有足夠的權限來存取 XML 資料的位置。

URI 所識別的檔案不存在。

URI 格式不正確。

注意:在.NET中,對於Windows Store 應用程式Portable Class Library,請選擇基底類別例外,FormatException

範例

以下範例建立 XmlReader 一個物件,讀取由 URI 指定的 XML 資料檔案。

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("books.xml");
' Create the XmlReader object.
Dim reader As XmlReader = XmlReader.Create("books.xml")

備註

XmlReaderSettings使用預設設定的物件來建立讀取器。 如果你想指定在建立的讀取器上支援的功能,請使用將物件 XmlReaderSettings 作為參數之一的過載,並傳入 XmlReaderSettings 一個設定正確的物件。

預設無 XmlUrlResolver 憑證時會用於存取任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請利用該XmlResolver屬性指定XmlReaderSettings.XmlResolver一個具備必要憑證的 。

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(TextReader)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

使用指定的文字閱讀器建立新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::IO::TextReader ^ input);
public static System.Xml.XmlReader Create(System.IO.TextReader input);
static member Create : System.IO.TextReader -> System.Xml.XmlReader
Public Shared Function Create (input As TextReader) As XmlReader

參數

input
TextReader

文字閱讀器,用以讀取 XML 資料。 文字閱讀器回傳一串 Unicode 字元,因此 XML 宣告中指定的編碼不會被 XML 讀取器用來解碼資料流。

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

範例

以下範例使用 該 StringReader 類別來讀取 XML 字串。

string xmlData ="<item productID='124390'>" +
                        "<price>5.95</price>" +
                        "</item>";

// Create the XmlReader object.
XmlReader reader = XmlReader.Create(new StringReader(xmlData));
Dim xmlData As String = "<item productID='124390'>" & _ 
                                     "<price>5.95</price>" & _ 
                                     "</item>"

' Create the XmlReader object.
Dim reader As XmlReader = XmlReader.Create(New StringReader(xmlData))

備註

XmlReaderSettings使用預設設定的物件來建立讀取器。 如果你想指定在建立的讀取器上支援的功能,請使用將物件 XmlReaderSettings 作為參數之一的過載,並傳入 XmlReaderSettings 一個設定正確的物件。

預設無 XmlUrlResolver 憑證時會用於存取任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請利用該XmlResolver屬性指定XmlReaderSettings.XmlResolver一個具備必要憑證的 。

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(Stream)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

用指定的串流以預設設定建立一個新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::IO::Stream ^ input);
public static System.Xml.XmlReader Create(System.IO.Stream input);
static member Create : System.IO.Stream -> System.Xml.XmlReader
Public Shared Function Create (input As Stream) As XmlReader

參數

input
Stream

包含 XML 資料的串流。

XmlReader 會掃描串流的前幾個位元組,尋找位元組順序標記或其他編碼符號。 當編碼確定後,編碼會用來繼續讀取串流,處理則繼續以(Unicode)字元的串流方式解析輸入。

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

input 值是 null

XmlReader 系統沒有足夠的權限來存取 XML 資料的位置。

範例

以下範例建立一個 XmlReader 物件,讀取 FileStream


FileStream fs = new FileStream(@"C:\data\books.xml", FileMode.OpenOrCreate,
                                                                    FileAccess.Read, FileShare.Read);

// Create the XmlReader object.
XmlReader reader = XmlReader.Create(fs);
    Dim fs As New FileStream("C:\data\books.xml", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read)
    
    ' Create the XmlReader object.
    Dim reader As XmlReader = XmlReader.Create(fs)

End Sub

備註

XmlReaderSettings使用預設設定的物件來建立讀取器。 如果你想指定在建立的讀取器上支援的功能,請使用將物件 XmlReaderSettings 作為參數之一的過載,並傳入 XmlReaderSettings 一個設定正確的物件。

預設無 XmlUrlResolver 憑證時會用於存取任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

如果外部資源位於需要認證的網路資源上,請利用該XmlResolver屬性指定XmlReaderSettings.XmlResolver一個具備必要憑證的 。

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於

Create(String, XmlReaderSettings)

來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs
來源:
XmlReader.cs

使用指定的 URI 和設定建立一個新 XmlReader 實例。

public:
 static System::Xml::XmlReader ^ Create(System::String ^ inputUri, System::Xml::XmlReaderSettings ^ settings);
public static System.Xml.XmlReader Create(string inputUri, System.Xml.XmlReaderSettings settings);
public static System.Xml.XmlReader Create(string inputUri, System.Xml.XmlReaderSettings? settings);
static member Create : string * System.Xml.XmlReaderSettings -> System.Xml.XmlReader
Public Shared Function Create (inputUri As String, settings As XmlReaderSettings) As XmlReader

參數

inputUri
String

包含 XML 資料的檔案 URI。 XmlResolver物件上的XmlReaderSettings物件用來將路徑轉換成標準資料表示。 若 XmlResolvernull,則使用一個新的 XmlUrlResolver 物件。

settings
XmlReaderSettings

新實例的設定 XmlReader 。 這個值可以是 null

傳回

一個用來讀取串流中 XML 資料的物件。

例外狀況

inputUri 值是 null

URI 指定的檔案無法找到。

URI 格式不正確。

注意:在.NET中,對於Windows Store 應用程式Portable Class Library,請選擇基底類別例外,FormatException

範例

以下範例建立 XmlReader 一個支援文件類型定義(DTD)驗證的物件。

// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);

 // Create the XmlReader object.
XmlReader reader = XmlReader.Create("itemDTD.xml", settings);

// Parse the file.
while (reader.Read()) {}
' Set the validation settings.
Dim settings As New XmlReaderSettings()
settings.DtdProcessing = DtdProcessing.Parse
settings.ValidationType = ValidationType.DTD
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack

' Create the XmlReader object.
Dim reader As XmlReader = XmlReader.Create("itemDTD.xml", settings)

' Parse the file. 
While reader.Read()
End While

備註

預設情況下,使用無憑證的 存取 XmlUrlResolver 任何外部資源,例如文件類型定義(DTD)、實體、結構等。

Important

從 .NET Framework 4.5.2 開始,不再提供預設 XmlUrlResolver 設定。 如果你的解決方案目標是 .NET Framework 4.5.2 或更新版本,請指定 使用 XmlResolver 這個 XmlReaderSettings.XmlResolver 屬性。

這表示他們 XmlReader 可以存取任何不需要驗證的地點。 如果外部資源位於需要認證的網路資源上,請使用 XmlReaderSettings.XmlResolver 屬性指定 a XmlResolver 並具備必要的憑證。

Important

你可以透過使用 XmlReader限制他們ThrowingResolver能存取的資源。

所建立 XmlReader 的物件會擴展實體參考,並對新行字元進行 XML 正規化。

適用於