Ana içeriğe geç

Sync

Belirtilen XPath'teki düğümleri girdi düğümleriyle eşitler ve eşitlenen düğümlerin dizisini döndürür.

myXml.Sync(xpath: string, input: Array<Xml>, hash: (node: Xml) => string):Array<Xml> (Xml)

Belirtilen XPath'teki düğümleri girdi düğümleriyle eşitler ve eşitlenen düğümlerin dizisini döndürür.

myXml.Sync(xpath: string, input: Array<Xml>, hash: (node: Xml) => string, removedNodes?: Array<Xml>):Array<Xml> (Xml)

Parametreler

string xpath
    Eşitlenecek düğümün XPath'i.

Array<Xml> input
    Eşitlenecek Xml düğümlerinin dizisi.

(node: Xml) => string hash
    Düğümleri karşılaştırmak için kullanılan karma işlevi. Belirtilmezse karşılaştırmada düğüm iş akışı kullanılır.

Array<Xml> removedNodes optional
    Kaldırılan düğümlerin ekleneceği isteğe bağlı dizi.

Döndürür

Eşitlenmiş Xml düğümlerinin dizisi. Eşitlenmiş Xml düğümlerinin dizisi.

Açıklamalar

Eşitleme, girdi düğümlerini temel alır ve belirtilen XPath'te şu işlemleri gerçekleştirir:

  • Düğüm karşılaştırması, her düğüm için benzersiz bir tanımlayıcı döndüren belirtilen karma işlevi kullanılarak yapılır. Karma işlevi belirtilmezse karşılaştırmada düğüm iş akışı kullanılır.
  • Girdi dizisinde bulunan ancak geçerli düğümde bulunmayan düğümler, geçerli düğümde otomatik olarak oluşturulur.
  • Hem girdi dizisinde hem de geçerli düğümde bulunan mevcut düğümler kopyalanır.
  • Geçerli düğümde bulunan ancak girdi dizisinde bulunmayan düğümler geçerli düğümden kaldırılır. İsteğe bağlı olarak kaldırılan düğümlerin listesi removedNodes parametreye eklenebilir.

"Source" ve "Target" düğümlerinin içeriğini eşitleme

1
2
3
4
var questions = $Xml.SelectAll('Source/Questions/Question');
$Xml.Sync('Target/Questions/Question', questions, function() {
  return this.Evaluate('Id');
});

XQuery yürütme ve sonuçları geçerli düğümlerle birleştirme

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$Xml.SelectAll('Standards/Standard', function() {
  var questions = $XmlRepository.QueryXml('for $q in InternalAudit//Question\
    where $q/Standards/Standard/Standard=$standard and $q/Departments/Department=$department\
    return\
     <Question>\
        { $q/Id }\
        { $q/Criteria }\
        { $q/Expectation }\
     </Question>', {
     standard : this.Evaluate('Standard'),
     department : $Xml.Evaluate('Department')
  });
  this.Sync('Questions/Question', questions, function() {
    return this.Evaluate('Id');
  });
});
Eşitleme, girdi düğümlerini temel alır ve belirtilen XPath'te şu işlemleri gerçekleştirir: - Düğüm karşılaştırması, her düğüm için benzersiz bir tanımlayıcı döndüren belirtilen karma işlevi kullanılarak yapılır. Karma işlevi belirtilmezse karşılaştırmada düğüm iş akışı kullanılır. - Girdi dizisinde bulunan ancak geçerli düğümde bulunmayan düğümler, geçerli düğümde otomatik olarak oluşturulur. - Hem girdi dizisinde hem de geçerli düğümde bulunan mevcut düğümler kopyalanır. - Geçerli düğümde bulunan ancak girdi dizisinde bulunmayan düğümler geçerli düğümden kaldırılır. İsteğe bağlı olarak kaldırılan düğümlerin listesi removedNodes parametreye eklenebilir.

"Source" ve "Target" düğümlerinin içeriğini eşitle

1
2
3
4
var questions = $Xml.SelectAll('Source/Questions/Question');
$Xml.Sync('Target/Questions/Question', questions, function() {
  return this.Evaluate('Id');
});

XQuery yürütür ve sonuçları geçerli düğümlerle birleştirir

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$Xml.SelectAll('Standards/Standard', function() {
  var questions = $XmlRepository.QueryXml('for $q in InternalAudit//Question\
    where $q/Standards/Standard/Standard=$standard and $q/Departments/Department=$department\
    return\
     <Question>\
        { $q/Id }\
        { $q/Criteria }\
        { $q/Expectation }\
     </Question>', {
     standard : this.Evaluate('Standard'),
     department : $Xml.Evaluate('Department')
  });
  this.Sync('Questions/Question', questions, function() {
    return this.Evaluate('Id');
  });
});

Ayrıca bkz.