2016-10-08 2 views
0

Ich habe keine Möglichkeit gefunden, Elemente aus dem Inhalt einer Seite mit der Onennote-API zu löschen.Inhalt der Seite mit Onenote Rest API löschen

Lasst uns meiner Seite sagen Inhalt

<body> 
    <div id="div:{681ddef6-e8ad-0de3-2439-dcc668303696}{34}"> 
     <p id="p:{f5837c83-d816-4337-ab6d-a52abde869a6}{13}">Delete me</p> 
     <p id="p:{1710a020-7fa3-46cb-a8ab-64209696e083}{14}">Keep me/p> 
    </div> 
</body> 

ist ich eine PATCH Anfrage bauen kann einfügen, anhängen, preprend, ... aber das sind keine Anweisungen Inhalt zu löschen.

Ich versuchte, den Absatz durch einen leeren Inhalt zu ersetzen:

[{ 
    'target': 'p:{f5837c83-d816-4337-ab6d-a52abde869a6}{13}', 
    'action': 'replace', 
    'content': ' ' 
}, 
] 

aber dies führt zu einem Fehler:

{ 
    "error":{ 
    "code":"20121","message":"The PATCH argument $content: is invalid.","@api.url":"http://aka.ms/onenote-errors#C20121" 
    } 
} 

Jeder Vorschlag? Vielen Dank.

+0

Möchten Sie den gesamten Inhalt einer Seite oder einen bestimmten Inhalt löschen? –

+0

Nur einige Elemente nur – lvr123

Antwort

2

Wenn Sie dies im Microsoft Graphen betrachten, können Sie den Inhalt durch einen HTML-Zeilenumbruch ersetzen.

[{ 
     'target': 'p:{f5837c83-d816-4337-ab6d-a52abde869a6}{13}', 
     'action': 'replace', 
     'content': '<br/>' 
    }]

Dies scheint das entsprechende Element (obwohl die leere Textbox noch wählbar ist)

+0

Das funktioniert. Nicht ordentlich. Aber es funktioniert. Ich habe versucht mit einem HTML-Kommentar statt der '
' aber ich konnte es nicht täuschen: -/ – lvr123

+2

Fehler: Der Trick mit dem Kommentar funktioniert !!! Ich habe versucht, mit einem HTML-Kommentar anstelle der '
' und es täuscht die API ;-) – lvr123

-1

Der Inhaltsparameter für eine PATCH-API-Aktion vom Typ Replace wird als gültiger HTML-Code erwartet. Es ist nicht zulässig, Leerzeichen als Ersatzinhalt anzugeben.

Sie können das Ersetzen eines Elements auf höherer Ebene als eines einzelnen Absatzes untersuchen, um beispielsweise Ihr Szenario zu erreichen.

+0

Das ist, was ich mache, aber das ist alles andere als ideal. Wenn ich ein spwcific umgebendes Element (z. B. ein "div") hinzufüge: 1) um ein "p" zu entfernen, bin ich gezwungen, das ganze "div" jedes Mal neu aufzubauen. 2) Wenn der OneNote-Benutzer Inhalte außerhalb des speziellen "div" hinzufügt, sind wir wieder bei demselben Problem! – lvr123

+0

Nun, das funktioniert überhaupt nicht. Es ist keine zuverlässige Lösung. Es ist für den Benutzer unmöglich zu wissen, ob Elemente innerhalb des speziellen Containers hinzugefügt werden oder nicht. Oder ob seine Änderungen die speziellen Containergrenzen nicht beeinflussen oder nicht. – lvr123

0

Während die API des „DELETE“ -Aktion in PATCH Seiten (ich würde empfehlen Sie, nicht akzeptiert zu löschen einen Eintrag in unserem Uservoice hinzufügen Webseite https://onenote.uservoice.com/forums/245490-onenote-developer-apis), können Sie die gesamte Seite durch den neuen Inhalt ersetzen, den Sie haben möchten.

Eine andere Option ähnelt der von Manoj vorgeschlagenen - ersetzen Sie das übergeordnete Element des Elements, das Sie löschen möchten, mit demselben Inhalt minus dem Element, das Sie löschen möchten.

+0

Wie machst du "Sie können die gesamte Seite mit neuen Inhalten ersetzen, die es haben soll"? Übrigens habe ich dies bereits zu uservoice hinzugefügt (https://onenote.uservoice.com/forums/245490-onenote-developer-apis/suggestions/16644187-api-to-delete-page-content). – lvr123

+0

Hallo Jorge, wenn es aussieht wie das Patchen mit einem HTML-Kommentar, löscht effektiv ein Element, wäre das nicht einfach zu testen und in die API zu rollen? – codeye