Ist es möglich, ein Word-Dokumentelement mit OpenXML zu duplizieren, ohne Probleme mit der "doppelten ID"?Duplizierung mit OpenXML (Word-Dokument) und ID-Problemen
Eigentlich zu duplizieren, klonen ich die Elemente innerhalb des Körpers und anfügen die geklonten Elemente in den Körper. Aber wenn irgendein Element eine ID hat, habe ich Fehler, wenn ich das Dokument in Word öffne. Hier
ist ein Beispiel für Fehler von OpenXML-Validator:
- [60] Description = ". Attribut 'id' sollte eindeutigen Wert hat Seinen aktuellen Wert 'Rechteck 11' Duplikate mit anderen"
Und hier ist mein Code:
Document document = wordDocument.MainDocumentPart.Document;
Body body = document.Body;
IEnumerable<OpenXmlElement> elements = ((Body)body.CloneNode(true)).Elements();
foreach (var element in elements)
{
OpenXmlElement e = (OpenXmlElement)element.CloneNode(true);
body.AppendChild(e);
}
Sie irgendein Beispiel haben Sie bitte? Ich weiß nicht wirklich, wie man die ID eines Elements ändert. Und zu den Teilen muss ich nur AddPart (e) in meinem Fall? –
Sie müssen eine Kopie des Teils hinzufügen (mit AddPart), die neue ID des kopierten Teils abrufen (mit GetIdOfPart) und die ID im kopierten Element ersetzen. Um die ID zu ersetzen, müssen Sie Ihr Element überprüfen (transformieren Sie Ihr OpenXmlElement in das reale Objekt und verwenden Sie die Id-Eigenschaft, um die neue ID zu beeinflussen. –
Welchen Teil muss ich kopieren? Da ich über eine Liste von openxmlelement iteriere? Ich weiß wirklich nicht, wie es geht. –