コード例 #1
0
            public IEnumerable <SourceMatch> Extract(SourceMatch extractedSoFar)
            {
                int index = 0;

                foreach (var child in extractedSoFar.Element.Children())
                {
                    var extracted = extractedSoFar
                                    .With(child is JProperty prop ? prop.Value : child);

                    var isValid = true;
                    foreach (var variable in this.variableHandlers)
                    {
                        if (!variable.TrySetValue(extracted, child, index))
                        {
                            isValid = false;
                            break;
                        }
                    }

                    if (isValid)
                    {
                        yield return(extracted);
                    }

                    ++index;
                }
            }
コード例 #2
0
 public IEnumerable <SourceMatch> Extract(SourceMatch extractedSoFar)
 {
     if (extractedSoFar.Element is JObject obj &&
         obj.TryGetValue(this.nodeName, out var nested))
     {
         yield return(extractedSoFar.With(nested));
     }
 }
コード例 #3
0
                public bool TrySetValue(SourceMatch extracted, JToken value, int index)
                {
                    var variableValue = this.variableCapture(value, index);

                    if (variableValue == null)
                    {
                        return(false);
                    }

                    if (this.filter?.Include(variableValue) == false)
                    {
                        return(false);
                    }

                    extracted.SetVariable(this.variableName, variableValue);
                    return(true);
                }