MatchAttribute Class
Assembly: System.Web.Services (in system.web.services.dll)
[AttributeUsageAttribute(AttributeTargets::All)] public ref class MatchAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.All) */ public final class MatchAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.All) public final class MatchAttribute extends Attribute
Not applicable.
Text pattern matching allows an XML Web service to leverage existing HTML content by parsing it using regular expressions. an XML Web service specifies the content it wants to parse in a Service Description using match elements. These match elements specify several items: the regular expression for parsing the contents of an existing HTML page, whether the parsing must be case-insensitive, and how many instances of content that matches the regular expression should be returned. When a client builds a proxy class using the Wsdl.exe tool, methods of the proxy class include a MatchAttribute detailing the match elements found in the Service Description.
For more information on text pattern matching, see How to: Create Web Services That Parse the Contents of a Web Page.
#using <System.dll> #using <System.Web.Services.dll> using namespace System; using namespace System::Web::Services::Protocols; public ref class Example_Headers { public: [MatchAttribute("TITLE>(.*?)<")] String^ Title; [MatchAttribute("",Pattern="h1>(.*?)<",IgnoreCase=true)] String^ H1; [MatchAttribute("H2>((([^<,]*),?)+)<",Group=3,Capture=4)] String^ Element; [MatchAttribute("H2>((([^<,]*),?){2,})<",Group=3,MaxRepeats=0)] array<String^>^ Elements1; [MatchAttribute("H2>((([^<,]*),?){2,})<",Group=3,MaxRepeats=1)] array<String^>^ Elements2; [MatchAttribute("H3 ([^=]*)=([^>]*)",Group=1)] String^ Attribute; [MatchAttribute("H3 ([^=]*)=([^>]*)",Group=2)] String^ Value; }; public ref class MatchAttribute_Example: public HttpGetClientProtocol { public: MatchAttribute_Example() { Url = "http://localhost"; } [HttpMethodAttribute(TextReturnReader::typeid,UrlParameterWriter::typeid)] Example_Headers^ GetHeaders() { return ((Example_Headers^)(Invoke( "GetHeaders", ( Url + "/MyHeaders.html" ), gcnew array<Object^>(0) ))); } System::IAsyncResult^ BeginGetHeaders( System::AsyncCallback^ callback, Object^ asyncState ) { return BeginInvoke( "GetHeaders", ( Url + "/MyHeaders.html" ), gcnew array<Object^>(0), callback, asyncState ); } Example_Headers^ EndGetHeaders( System::IAsyncResult^ asyncResult ) { return (Example_Headers^)(EndInvoke( asyncResult )); } };
import System.*;
import System.Web.Services.Protocols.*;
public class MatchAttribute_Example extends HttpGetClientProtocol
{
public MatchAttribute_Example()
{
set_Url("http://localhost");
} //MatchAttribute_Example
/** @attribute HttpMethodAttribute(TextReturnReader.class,
UrlParameterWriter.class)
*/
public Example_Headers GetHeaders()
{
return (Example_Headers)Invoke("GetHeaders", get_Url()
+ "/MyHeaders.html", new Object[0]);
} //GetHeaders
public System.IAsyncResult BeginGetHeaders(System.AsyncCallback callback,
Object asyncState)
{
return BeginInvoke("GetHeaders", get_Url()
+ "/MyHeaders.html", new Object[0], callback, asyncState);
} //BeginGetHeaders
public Example_Headers EndGetHeaders(System.IAsyncResult asyncResult)
{
return (Example_Headers)EndInvoke(asyncResult);
} //EndGetHeaders
} //MatchAttribute_Example
public class Example_Headers
{
/** @attribute MatchAttribute("TITLE>(.*?)<")
*/
public String title;
/** @attribute MatchAttribute("", Pattern = "h1>(.*?)<", IgnoreCase = true)
*/
public String h1;
/** @attribute MatchAttribute("H2>((([^<,]*),?)+)<", Group = 3, Capture = 4)
*/
public String element;
/** @attribute MatchAttribute("H2>((([^<,]*),?){2,})<", Group = 3,
MaxRepeats = 0)
*/
public String elements1[];
/** @attribute MatchAttribute("H2>((([^<,]*),?){2,})<", Group = 3,
MaxRepeats = 1)
*/
public String elements2[];
/** @attribute MatchAttribute("H3 ([^=]*)=([^>]*)", Group = 1)
*/
public String attribute;
/** @attribute MatchAttribute("H3 ([^=]*)=([^>]*)", Group = 2)
*/
public String value;
} //Example_Headers
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.