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

◆ BuildAxisFilter()

static QilLoop System.Xml.Xsl.Xslt.XPathPatternBuilder.BuildAxisFilter ( QilPatternFactory f,
QilIterator itr,
XPathAxis xpathAxis,
XPathNodeType nodeType,
string name,
string nsUri )
inlinestaticprivate

Definition at line 159 of file XPathPatternBuilder.cs.

160 {
161 QilNode right = ((name != null && nsUri != null) ? f.Eq(f.NameOf(itr), f.QName(name, nsUri)) : ((nsUri != null) ? f.Eq(f.NamespaceUriOf(itr), f.String(nsUri)) : ((name != null) ? f.Eq(f.LocalNameOf(itr), f.String(name)) : f.True())));
162 XmlNodeKindFlags xmlNodeKindFlags = XPathBuilder.AxisTypeMask(itr.XmlType.NodeKinds, nodeType, xpathAxis);
163 QilNode left = ((xmlNodeKindFlags == XmlNodeKindFlags.None) ? f.False() : ((xmlNodeKindFlags == itr.XmlType.NodeKinds) ? f.True() : f.IsType(itr, XmlQueryTypeFactory.NodeChoice(xmlNodeKindFlags))));
164 QilLoop qilLoop = f.BaseFactory.Filter(itr, f.And(left, right));
165 qilLoop.XmlType = XmlQueryTypeFactory.PrimeProduct(XmlQueryTypeFactory.NodeChoice(xmlNodeKindFlags), qilLoop.XmlType.Cardinality);
166 return qilLoop;
167 }
QilLoop Filter(QilNode variable, QilNode body)
QilNode IsType(QilNode expr, XmlQueryType t)
QilNode And(QilNode left, QilNode right)
QilName QName(string local, string uri, string prefix)
QilNode Eq(QilNode left, QilNode right)
static XmlNodeKindFlags AxisTypeMask(XmlNodeKindFlags inputTypeMask, XPathNodeType nodeType, XPathAxis xpathAxis)

References System.Xml.Xsl.Qil.QilPatternFactory.And(), System.Xml.Xsl.XPath.XPathBuilder.AxisTypeMask(), System.Xml.Xsl.Qil.QilPatternFactory.BaseFactory, System.Xml.Dictionary, System.Xml.Xsl.Qil.QilPatternFactory.Eq(), System.Xml.Xsl.Qil.QilPatternFactory.False(), System.Xml.Xsl.Qil.QilFactory.Filter(), System.Xml.Xsl.Qil.QilPatternFactory.IsType(), System.Xml.Xsl.Qil.QilPatternFactory.LocalNameOf(), System.Xml.Xsl.Qil.QilPatternFactory.NameOf(), System.Xml.Xsl.Qil.QilPatternFactory.NamespaceUriOf(), System.Xml.Xsl.XmlQueryTypeFactory.NodeChoice(), System.Xml.Xsl.XmlQueryTypeFactory.PrimeProduct(), System.Xml.Xsl.Qil.QilPatternFactory.QName(), System.Xml.Xsl.Qil.QilPatternFactory.String(), and System.Xml.Xsl.Qil.QilPatternFactory.True().

Referenced by System.Xml.Xsl.Xslt.XPathPatternBuilder.Axis().