Extensions.XPathEvaluate Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Valuta un'espressione XPath.
Overload
XPathEvaluate(XNode, String) |
Valuta un'espressione XPath. |
XPathEvaluate(XNode, String, IXmlNamespaceResolver) |
Valuta un'espressione XPath risolvendo i prefissi degli spazi dei nomi utilizzando l'oggetto IXmlNamespaceResolver specificato. |
Commenti
Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.
Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling
o ancestor-or-self
.
XPathEvaluate(XNode, String)
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
Valuta un'espressione XPath.
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
Parametri
Restituisce
Oggetto che può contenere bool
, double
, string
o IEnumerable<T>.
Esempio
Nell'esempio seguente viene creato un piccolo albero XML con un attributo , quindi viene utilizzato il XPathEvaluate metodo per recuperare l'attributo .
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())
Nell'esempio viene prodotto l'output seguente:
a="value"
Commenti
Se la raccolta è un'enumerazione di elementi o attributi, è possibile usare l'operatore Cast
per ottenere una raccolta di XElement o XAttribute.
Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.
Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling
o ancestor-or-self
.
Si applica a
XPathEvaluate(XNode, String, IXmlNamespaceResolver)
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
Valuta un'espressione XPath risolvendo i prefissi degli spazi dei nomi utilizzando l'oggetto IXmlNamespaceResolver specificato.
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);
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
Parametri
- resolver
- IXmlNamespaceResolver
IXmlNamespaceResolver per i prefissi degli spazi dei nomi nell'espressione XPath.
Restituisce
Oggetto contenente il risultato della valutazione dell'espressione. L'oggetto può essere bool
, double
, string
o IEnumerable<T>.
Esempio
Nell'esempio seguente viene creata una struttura ad albero XML contenente uno spazio dei nomi . Per leggere il documento XML viene usato XmlReader. Quindi si ottiene XmlNameTable da XmlReader e XmlNamespaceManager da XmlNameTable. Usa quando XmlNamespaceManager si seleziona un elemento .
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)
Nell'esempio viene prodotto l'output seguente:
aw:Att="attdata"
Commenti
È possibile utilizzare questo metodo per valutare le espressioni XPath contenenti prefissi dello spazio dei nomi.
Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.
Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling
o ancestor-or-self
.