简体   繁体   中英

Delete page's content with Onenote Rest API

I haven't found a way to delete items from a page's content with the onennote API.

Let's say my page's content is

<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>

I can build a PATCH request to insert, append, preprend, ... but that are no instructions to delete content.

I tried to replace the paragraph by some empty content:

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

but this leads to an error:

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

Any suggestion ? Thanks.

Just looking at this in the microsoft graph, you can replace the content with a HTML line break.

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

This seems to delete the corresponding element (although the blank textbox is still selectable)

While the API does not support the "DELETE" action in PATCH pages (I'd encourage you to add an entry in our uservoice webpage https://onenote.uservoice.com/forums/245490-onenote-developer-apis ), you can replace the entire page with whatever new content you want it to have.

Another option is similar to what Manoj suggested - replace the parent of the element you want to delete with the same content minus the element you want to delete.

The content parameter on a PATCH API action of type replace is expected to be valid HTML. It's not valid to specify whitespace as replacement content.

You can explore replacing a higher level element than a single paragraph to achieve your scenario, for example.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM