Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XPathEvaluator.cs
Go to the documentation of this file.
4
5namespace System.Xml.XPath;
6
7[StructLayout(LayoutKind.Sequential, Size = 1)]
8internal readonly struct XPathEvaluator
9{
11 {
12 XPathNavigator xPathNavigator = node.CreateNavigator();
13 object obj = xPathNavigator.Evaluate(expression, resolver);
14 if (obj is XPathNodeIterator result)
15 {
16 return EvaluateIterator<T>(result);
17 }
18 if (!(obj is T))
19 {
21 }
22 return (T)obj;
23 }
24
26 {
27 foreach (XPathNavigator item in result)
28 {
29 object r = item.UnderlyingObject;
30 if (!(r is T))
31 {
33 }
34 yield return (T)r;
35 XText t = r as XText;
36 if (t == null || t.GetParent() == null)
37 {
38 continue;
39 }
40 do
41 {
43 if (t == null)
44 {
45 break;
46 }
47 yield return (T)(object)t;
48 }
49 while (t != t.GetParent().LastNode);
50 }
51 }
52}
static string InvalidOperation_UnexpectedEvaluation
Definition SR.cs:72
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
Definition SR.cs:7
IEnumerable< T > EvaluateIterator< T >(XPathNodeIterator result)
object Evaluate< T >(XNode node, string expression, IXmlNamespaceResolver resolver)