i zwei XElements zu vergleichen versuche() wie folgt:Linq - XElement Vergleichen
XElement parentItems =
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
<tcm:Item Title="070_Page" Modified="2016-01-06T18:08:36" CP1="-6185, Intro" CP2="-6182, Article Body" CP3="-14507, Article Body1" CP4="-14430, Article Body2" CP5="-14530, Article Body3" CP6="-7064, Article Body4" CP7="-14529, Article Body5" CP8="-7065, Article Body6" CPCount="8" />
<tcm:Item Title="080_Page" Modified="2015-04-23T13:27:59" CP1="-6302, Intro" CP2="-6193, Article Body" CPCount="2" />
<tcm:Item Title="Release Notes" Modified="2016-01-07T21:25:43" CP1="-6303, Release Notes Intro" CP2="-6196, Release Notes Article Body" CPCount="2" />
</tcm:ListItems>
XElement childItems =
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
<tcm:Item Title="070_Page" Modified="2016-06-06T19:36:35" CP1="-6185, Intro" CP2="-6147, Media & Delivery Intro" CP3="-6182, Article Body" CP4="-14507, Article Body1" CP5="-14430, Article Body2" CP6="-14530, Article Body3" CP7="-7064, Article Body4" CP8="-14529, Article Body5" CP9="-7065, Article Body6" CPCount="9" />
<tcm:Item Title="080_Page" Modified="2016-02-09T21:03:32" CP1="-6302, Intro" CP2="-6193, Article Body" CPCount="2" />
<tcm:Item Title="Release Notes" Modified="2016-02-09T21:03:33" CP1="-6303, Release Notes Intro" CP2="-6196, Release Notes Article Body" CPCount="2" />
<tcm:Item Title="Release Notes1" Modified="2016-03-09T22:00:13" CP1="-6303, Release Notes Intro" CP2="-6196, Release Notes Article Body" CPCount="2" />
</tcm:ListItems>
ich mein Ergebnis sein soll (der erste hat einen anderen CPCount und der zweite ist ein neues Element in childItems):
XElement d iff =
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
<tcm:Item Title="070_Page" Modified="2016-06-06T19:36:35" CP1="-6185, Intro" CP2="-6147, Media & Delivery Intro" CP3="-6182, Article Body" CP4="-14507, Article Body1" CP5="-14430, Article Body2" CP6="-14530, Article Body3" CP7="-7064, Article Body4" CP8="-14529, Article Body5" CP9="-7065, Article Body6" CPCount="9" />
<tcm:Item Title="Release Notes1" Modified="2016-03-09T22:00:13" CP1="-6303, Release Notes Intro" CP2="-6196, Release Notes Article Body" CPCount="2" />
</tcm:ListItems>
Ich habe XMLDiff API aber kein Glück versucht. Ich kann durchschleifen und die Ergebnisse bekommen, aber manchmal kann die Liste riesig sein (3000+). Gibt es einen besten Weg, damit umzugehen?
Sie möchten also Title-Attribut als Schlüssel und andere Attribute verwenden - nur vergleichen, wenn vorhanden, und in der resultierenden Liste anzeigen, wenn nicht übereinstimmende oder fehlende Attribute? Sie sollten in der Lage sein, eine 'Dictionary>' zu verwenden, wobei der erste Schlüssel ein Elementtitel und der zweite Schlüssel der zu vergleichende Eigenschaftsname ist. Baue zwei davon, für links und rechts, dann vergleiche. –
Neolisk
Danke Neolisk ... Ja, Titel wird der Hauptfilter sein .. Andere Attribute können anders sein .. aber meine Ergebnisse sollten basieren auf: 1) CPCount 2) wenn es ein neues Element in Kind gibt, das doesn ' t existieren in Parent ist Wörterbuch ein richtiger Weg? Wird es eine schlechte Leistung geben ... Hat Linq so etwas wie Deepequals? https://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.deepequals(v=vs.110).aspx – Harish
Ich werde das untersuchen, wenn ich wieder zu Hause bin - werde versuchen Mache ein funktionierendes Codebeispiel für dich. – Neolisk