使用XmlDocument类从OneNote中提取注释内容

时间:2017-04-26 18:33:29

标签: vb.net onenote

我正在使用vb.net并尝试从onenote中的注释中提取文本(我将为OneNote2010或2016年解决。)以下代码能够复制书籍的标题,以及section ...到文本框(用于测试),但不是笔记的实际内容。我知道一旦你知道如何做一次,这可能是非常容易的。但我为我的生活/谷歌搜索无法弄清楚魔法命令。 (在Visual Basic中)。

感谢您阅读!

Imports Microsoft.Win32
Imports System.Security.Permissions
Imports Microsoft.Office.Interop
Imports System.Xml

Public Class Form1

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        Dim strNamespace As String = "http://schemas.microsoft.com/office/onenote/2013/onenote"
        Dim outputXML As String
        Dim onApplication As OneNote.Application = New OneNote.Application
        onApplication.GetHierarchy(Nothing, OneNote.HierarchyScope.hsSections, outputXML)

        Dim xmlDoc As XmlDocument = New XmlDocument()
        xmlDoc.LoadXml(outputXML)
        Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(xmlDoc.NameTable)
        nsmgr.AddNamespace("one", strNamespace)

        Dim Testa As XmlNode = xmlDoc.SelectSingleNode("//one:Section[@name='TestNote']", nsmgr)

    TextBox1.Text = outputXML

    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

要获取页面内容,您需要使用适当的pageID调用onApplication.GetPageContent()。

查看生成的XML。您可能需要查找每一个:T元素,并连接。您将不得不寻找一个:子弹和一个:列表编号。

这是描述所有元素的XSD。 https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/63/17/0336.OneNoteApplication_2013_xsd.txt