Extensions.XPathEvaluate Extensions.XPathEvaluate Extensions.XPathEvaluate Extensions.XPathEvaluate Method

정의

XPath 식을 평가합니다.Evaluates an XPath expression.

오버로드

XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String)

XPath 식을 평가합니다.Evaluates an XPath expression.

XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver)

XPath 식을 평가하고 지정된 IXmlNamespaceResolver를 사용하여 네임스페이스 접두사를 확인합니다.Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

설명

반환 된 컬렉션의 순서를 지정 하지 않으면 XML XPath 언어 1.0 권장 사항에 있지만이 확장 메서드는 문서 순서로 노드를 반환 합니다.Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

와 같은 역방향 축입니다를 사용 하는 경우에 노드가 문서 순서로 반환 되도록 유의 preceding-sibling 또는 ancestor-or-self합니다.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String)

XPath 식을 평가합니다.Evaluates an XPath expression.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ XPathEvaluate(System::Xml::Linq::XNode ^ node, System::String ^ expression);
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression);
static member XPathEvaluate : System.Xml.Linq.XNode * string -> obj
<Extension()>
Public Function XPathEvaluate (node As XNode, expression As String) As Object

매개 변수

node
XNode XNode XNode XNode

XPath 식을 평가할 XNode입니다.The XNode on which to evaluate the XPath expression.

expression
String String String String

XPath 식을 포함하는 String입니다.A String that contains an XPath expression.

반환

bool, double, string 또는 IEnumerable<T>을 포함할 수 있는 개체입니다.An object that can contain a bool, a double, a string, or an IEnumerable<T>.

예제

다음 예제에서는 특성을 사용 하 여 작은 XML 트리를 만든 다음 사용 하 여 XPathEvaluate 특성을 검색 하는 방법.The following example creates a small XML tree with an attribute, then uses the XPathEvaluate method to retrieve the attribute.


                String xml = "<root a='value'/>";  
XDocument d = XDocument.Parse(xml);  
IEnumerable att = (IEnumerable)d.XPathEvaluate("/root/@a");  
Console.WriteLine(att.Cast<XAttribute>().FirstOrDefault());  

                Dim d As XDocument = _  
    <?xml version='1.0'?>  
    <root a='value'/>  
Dim att As IEnumerable = CType(d.XPathEvaluate("/root/@a"), IEnumerable)  
Console.WriteLine(att.Cast(Of XAttribute)().FirstOrDefault())  

이 예제는 다음과 같은 출력을 생성합니다.This example produces the following output:

a="value"  

설명

요소 또는 특성의 열거형 컬렉션을 사용 하는 경우 사용할 수는 Cast 연산자의 컬렉션을 가져오려면 XElement 또는 XAttribute합니다.If the collection is an enumeration of elements or attributes, you can use the Cast operator to get a collection of XElement or XAttribute.

반환 된 컬렉션의 순서를 지정 하지 않으면 XML XPath 언어 1.0 권장 사항에 있지만이 확장 메서드는 문서 순서로 노드를 반환 합니다.Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

와 같은 역방향 축입니다를 사용 하는 경우에 노드가 문서 순서로 반환 되도록 유의 preceding-sibling 또는 ancestor-or-self합니다.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver)

XPath 식을 평가하고 지정된 IXmlNamespaceResolver를 사용하여 네임스페이스 접두사를 확인합니다.Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ XPathEvaluate(System::Xml::Linq::XNode ^ node, System::String ^ expression, System::Xml::IXmlNamespaceResolver ^ resolver);
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);
static member XPathEvaluate : System.Xml.Linq.XNode * string * System.Xml.IXmlNamespaceResolver -> obj
<Extension()>
Public Function XPathEvaluate (node As XNode, expression As String, resolver As IXmlNamespaceResolver) As Object

매개 변수

node
XNode XNode XNode XNode

XPath 식을 평가할 XNode입니다.The XNode on which to evaluate the XPath expression.

expression
String String String String

XPath 식을 포함하는 String입니다.A String that contains an XPath expression.

resolver
IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver

XPath 식의 네임스페이스 접두사에 대한 IXmlNamespaceResolver입니다.A IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

반환

식 평가 결과가 들어 있는 개체입니다.An object that contains the result of evaluating the expression. 이 개체는 bool, double, string 또는 IEnumerable<T>일 수 있습니다.The object can be a bool, a double, a string, or an IEnumerable<T>.

예제

다음 예제에서는 네임 스페이스를 포함 하는 XML 트리를 만듭니다.The following example creates an XML tree that contains a namespace. 여기에서는 XmlReader를 사용하여 XML 문서를 읽습니다.It uses an XmlReader to read the XML document. 그런 다음 XmlNameTable에서 XmlReader을 가져오고 XmlNamespaceManager에서 XmlNameTable를 가져옵니다.It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. 사용 된 XmlNamespaceManager 요소를 선택 하는 경우.It uses the XmlNamespaceManager when selecting an element.


                string markup =  
@"<aw:Root xmlns:aw='http://www.adventure-works.com'>  
    <aw:Child1 aw:Att='attdata'>child one data 1</aw:Child1>  
</aw:Root>";  
XmlReader reader = XmlReader.Create(new StringReader(markup));  
XElement root = XElement.Load(reader);  
XmlNameTable nameTable = reader.NameTable;  
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable);  
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com");  
IEnumerable atts = (IEnumerable)root.XPathEvaluate("./aw:Child1/@aw:Att", namespaceManager);  
IEnumerable<XAttribute> attList = atts.Cast<XAttribute>();  
XAttribute att = attList.First();  
Console.WriteLine(att);  

                Dim markup As XElement = _  
    <aw:Root xmlns:aw='http://www.adventure-works.com'>  
        <aw:Child1 aw:Att='attdata'>child one data 1</aw:Child1>  
    </aw:Root>  
Dim reader As XmlReader = markup.CreateReader  
Dim nameTable As XmlNameTable = reader.NameTable  
Dim namespaceManager As XmlNamespaceManager = New XmlNamespaceManager(nameTable)  
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com")  
Dim atts As IEnumerable = CType(markup.XPathEvaluate("./aw:Child1/@aw:Att", namespaceManager), IEnumerable)  
Dim attList As IEnumerable(Of XAttribute) = atts.Cast(Of XAttribute)()  
Dim att As XAttribute = attList.First()  
Console.WriteLine(att)  

이 예제는 다음과 같은 출력을 생성합니다.This example produces the following output:

aw:Att="attdata"  

설명

네임 스페이스 접두사를 포함 하는 XPath 식을 평가할이 메서드를 사용할 수 있습니다.You can use this method to evaluate XPath expressions that contain namespace prefixes.

반환 된 컬렉션의 순서를 지정 하지 않으면 XML XPath 언어 1.0 권장 사항에 있지만이 확장 메서드는 문서 순서로 노드를 반환 합니다.Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

와 같은 역방향 축입니다를 사용 하는 경우에 노드가 문서 순서로 반환 되도록 유의 preceding-sibling 또는 ancestor-or-self합니다.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

적용 대상