Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Axis() [3/3]

QilNode System.Xml.Xsl.Xslt.XPathPatternBuilder.Axis ( XPathAxis xpathAxis,
XPathNodeType nodeType,
string prefix,
string name )
inline

Definition at line 169 of file XPathPatternBuilder.cs.

170 {
172 double priority;
173 switch (xpathAxis)
174 {
175 case XPathAxis.DescendantOrSelf:
176 return _f.Nop(_fixupNode);
177 case XPathAxis.Root:
178 {
179 QilIterator expr;
180 qilLoop = _f.BaseFactory.Filter(expr = _f.For(_fixupNode), _f.IsType(expr, XmlQueryTypeFactory.Document));
181 priority = 0.5;
182 break;
183 }
184 default:
185 {
186 string nsUri = ((prefix == null) ? null : _environment.ResolvePrefix(prefix));
187 qilLoop = BuildAxisFilter(_f, _f.For(_fixupNode), xpathAxis, nodeType, name, nsUri);
188 switch (nodeType)
189 {
190 case XPathNodeType.Element:
191 case XPathNodeType.Attribute:
192 priority = ((name == null) ? ((prefix == null) ? (-0.5) : (-0.25)) : 0.0);
193 break;
194 case XPathNodeType.ProcessingInstruction:
195 priority = ((name != null) ? 0.0 : (-0.5));
196 break;
197 default:
198 priority = -0.5;
199 break;
200 }
201 break;
202 }
203 }
206 return qilLoop;
207 }
QilLoop Filter(QilNode variable, QilNode body)
QilIterator For(QilNode binding)
QilNode IsType(QilNode expr, XmlQueryType t)
static QilLoop BuildAxisFilter(QilPatternFactory f, QilIterator itr, XPathAxis xpathAxis, XPathNodeType nodeType, string name, string nsUri)
static void SetPriority(QilNode node, double priority)
static void SetLastParent(QilNode node, QilLoop parent)

References System.Xml.Xsl.Xslt.XPathPatternBuilder._environment, System.Xml.Xsl.Xslt.XPathPatternBuilder._f, System.Xml.Xsl.Xslt.XPathPatternBuilder._fixupNode, System.Xml.Xsl.Qil.QilPatternFactory.BaseFactory, System.Xml.Xsl.Xslt.XPathPatternBuilder.BuildAxisFilter(), System.Xml.Dictionary, System.Xml.Xsl.XmlQueryTypeFactory.Document, System.Xml.Xsl.Qil.QilFactory.Filter(), System.Xml.Xsl.Qil.QilPatternFactory.For(), System.Xml.Xsl.Qil.QilPatternFactory.IsType(), System.Xml.Xsl.Qil.QilPatternFactory.Nop(), System.prefix, System.Xml.Xsl.XPath.IXPathEnvironment.ResolvePrefix(), System.Xml.Xsl.Xslt.XPathPatternBuilder.SetLastParent(), and System.Xml.Xsl.Xslt.XPathPatternBuilder.SetPriority().