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

◆ MatchCountPattern()

QilNode System.Xml.Xsl.Xslt.QilGenerator.MatchCountPattern ( QilNode countPattern,
QilIterator testNode )
inlineprivate

Definition at line 1486 of file QilGenerator.cs.

1487 {
1488 if (countPattern != null)
1489 {
1491 }
1492 QilNode currentNode = GetCurrentNode();
1493 XmlNodeKindFlags nodeKinds = currentNode.XmlType.NodeKinds;
1494 if ((nodeKinds & (nodeKinds - 1)) != 0)
1495 {
1496 return _f.InvokeIsSameNodeSort(testNode, currentNode);
1497 }
1498 QilNode left;
1499 switch (nodeKinds)
1500 {
1501 case XmlNodeKindFlags.Document:
1502 return _f.IsType(testNode, XmlQueryTypeFactory.Document);
1503 case XmlNodeKindFlags.Element:
1504 left = _f.IsType(testNode, XmlQueryTypeFactory.Element);
1505 break;
1506 case XmlNodeKindFlags.Attribute:
1507 left = _f.IsType(testNode, XmlQueryTypeFactory.Attribute);
1508 break;
1509 case XmlNodeKindFlags.Text:
1510 return _f.IsType(testNode, XmlQueryTypeFactory.Text);
1511 case XmlNodeKindFlags.Comment:
1512 return _f.IsType(testNode, XmlQueryTypeFactory.Comment);
1513 case XmlNodeKindFlags.PI:
1514 return _f.And(_f.IsType(testNode, XmlQueryTypeFactory.PI), _f.Eq(_f.LocalNameOf(testNode), _f.LocalNameOf(currentNode)));
1515 case XmlNodeKindFlags.Namespace:
1516 return _f.And(_f.IsType(testNode, XmlQueryTypeFactory.Namespace), _f.Eq(_f.LocalNameOf(testNode), _f.LocalNameOf(currentNode)));
1517 default:
1518 return _f.False();
1519 }
1521 }
virtual XmlQueryType XmlType
Definition QilNode.cs:29
QilNode IsType(QilNode expr, XmlQueryType t)
QilNode And(QilNode left, QilNode right)
QilNode Eq(QilNode left, QilNode right)
readonly XsltQilFactory _f
QilNode MatchPattern(QilNode pattern, QilIterator testNode)
QilNode InvokeIsSameNodeSort(QilNode n1, QilNode n2)

References System.Xml.Xsl.Xslt.QilGenerator._f, System.Xml.Xsl.Qil.QilPatternFactory.And(), System.Xml.Xsl.XmlQueryTypeFactory.Attribute, System.Xml.Xsl.XmlQueryTypeFactory.Comment, System.Xml.Xsl.XmlQueryTypeFactory.Document, System.Xml.Xsl.XmlQueryTypeFactory.Element, System.Xml.Xsl.Qil.QilPatternFactory.Eq(), System.Xml.Xsl.Qil.QilPatternFactory.False(), System.Xml.Xsl.Xslt.QilGenerator.GetCurrentNode(), System.Xml.Xsl.Xslt.XsltQilFactory.InvokeIsSameNodeSort(), System.Xml.Xsl.Qil.QilPatternFactory.IsType(), System.Xml.Xsl.Qil.QilPatternFactory.LocalNameOf(), System.Xml.Xsl.Xslt.QilGenerator.MatchPattern(), System.Xml.Xsl.XmlQueryTypeFactory.Namespace, System.Xml.Xsl.Qil.QilPatternFactory.NamespaceUriOf(), System.Xml.Xsl.XmlQueryTypeFactory.PI, System.Xml.Xsl.XmlQueryTypeFactory.Text, and System.Xml.Xsl.Qil.QilNode.XmlType.

Referenced by System.Xml.Xsl.Xslt.QilGenerator.PlaceMarker(), and System.Xml.Xsl.Xslt.QilGenerator.PlaceMarkerAny().