語言

XPathMessageFilter 類別

定義

代表對 XML 文件的查詢,該文件由 XPath 1.0 表達式定義。

public ref class XPathMessageFilter : System::ServiceModel::Dispatcher::MessageFilter, System::Xml::Serialization::IXmlSerializable
public class XPathMessageFilter : System.ServiceModel.Dispatcher.MessageFilter, System.Xml.Serialization.IXmlSerializable
type XPathMessageFilter = class
    inherit MessageFilter
    interface IXmlSerializable
Public Class XPathMessageFilter
Inherits MessageFilter
Implements IXmlSerializable
繼承
XPathMessageFilter
實作

備註

XPathMessageFilter 會使用 XPath 運算式來確定 XML 檔是否包含特定元素、屬性、文字或其他 XML 語法建構。 一般而言,應用程式會在端點使用 XPathMessageFilter 來查詢SOAP訊息的內容,然後根據該查詢的結果採取適當的動作。 例如,佇列程序可能會使用 XPath 查詢,檢查已知標頭的優先元素,以決定是否將訊息移至佇列前端。

XML 路徑語言(XPath)提供一種用於定位 XML 文件各部分的語言。 XPath 的主要語法結構是一個表達式,用以定義如何遍歷 XML 文件的邏輯結構,並定位或識別 XPath 資料型別。 具體來說,XPath 實作會根據 XML 文件的結構評估表達式,產生四種基本 XPath 資料型態之一:字串、數字、布林值與節點集合。 它們也支援將 XPath 資料型態轉換成字串、數字或布林資料型態的函式。 若方法預期這三種資料型態之一,則表達式評估結果會被隱含轉換。 請注意,這三種資料型別無法轉換為節點集型態。 XML 路徑語言在 W3C XML 路徑語言 1.0 規範中有完整描述。

XPath 表達式中的數字以雙精度 64 位元值表示。 因此,涉及多位有效數字測試的XPath表達式,可能因浮點精度問題而回傳錯誤結果。 欲了解更多資訊,請參閱 XML 路徑語言(XPath)版本 1.0,第 3.5 節。

建構函式

名稱 Description
XPathMessageFilter()

初始化一個與所有良好 XML 文件相符的類別新實例 XPathMessageFilter 。

XPathMessageFilter(String, XmlNamespaceManager)

使用指定的 XPath 表達式與命名空間管理器初始化該類別的新 XPathMessageFilter 實例。

XPathMessageFilter(String, XsltContext)

使用指定的 XPath 表達式初始化該類別的新實例XPathMessageFilter。XsltContext

XPathMessageFilter(String)

使用 XPath 表達式初始化類別的新實例 XPathMessageFilter ,以指定篩選器的查詢條件。

XPathMessageFilter(XmlReader, XmlNamespaceManager)

透過讀取串流的 XPath 並使用指定的命名空間管理器,初始化該類別的新 XPathMessageFilter 實例。

XPathMessageFilter(XmlReader, XsltContext)

透過讀取串流的 XPath 並使用指定的 XML 讀取器,初始化該類別的新實例 XPathMessageFilter ,並用 XsltContext 解析命名空間、自訂函式與變數。

XPathMessageFilter(XmlReader)

透過讀取串流的 XPath 並使用指定的 XML 讀取器,初始化該類別的新 XPathMessageFilter 實例。

屬性

名稱 Description
Namespaces

取得 XPath 表達式中解析命名空間前綴的管理器,該表達式定義了過濾器。

NodeQuota

取得或設定在篩選器評估時應檢視的最大節點數量。

XPath

取得定義篩選條件的 XPath 表達式。

方法

名稱 Description
CreateFilterTable<FilterData>()

建立 XPathMessageFilterTable<TFilterData> 一個具有特定類型資料的 。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type。

(繼承來源 Object)
Match(Message)

測試指定訊息是否符合 XPath 過濾器的標準。 此表單不允許存取訊息正文。

Match(MessageBuffer)

判斷緩衝訊息是否符合 XPath 濾波器的查詢條件。

Match(SeekableXPathNavigator)

判斷由指定優化 XPath 導航器所提供的 XML 文件是否符合 XPath 篩選器的查詢條件。

Match(XPathNavigator)

評估該篩選器對指定 XPath 導航器的使用。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OnGetSchema()

取得目前 XML 文件的結構。

OnReadXml(XmlReader)

讀取目前的 XML 節點。

OnWriteXml(XmlWriter)

使用 writer。

ReadXPath(XmlReader, XmlNamespaceManager)

以指定的 XML 讀取器使用指定的命名空間管理器取得的 XPath 初始化目前的實例 XPathMessageFilter 。

StaticGetSchema(XmlSchemaSet)

取得用於序列化 XPath 濾波器的 XML 架構類型。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
TrimToSize()

壓縮 XPath 濾波器,釋放所有未使用記憶體。

WriteXPath(XmlWriter, IXmlNamespaceResolver)

將 XPath 濾波器序列化為 XmlWriter。

WriteXPathTo(XmlWriter, String, String, String, Boolean)

用指定的 XML 寫入器寫入 XML XPath 元素。

明確介面實作

名稱 Description
IXmlSerializable.GetSchema()

一個明確的介面實作,能取得目前的結構。

IXmlSerializable.ReadXml(XmlReader)

一個明確的介面實作,讀取目前的 XML 節點。

IXmlSerializable.WriteXml(XmlWriter)

一個明確 writer的介面實作,使用 。

適用於