onenoteノートブックから情報を取得しようとしています。私が知ることができる唯一の方法は、ノートブックの階層を取得し、すべての属性をプルしてページの実際のコンテンツを取得できるようにすることです。 XML文書の例を次に示します。Visual BasicでXML属性を使用して文字列配列を作成する
<?xml version="1.0"?>
<one:Notebooks xmlns:one="http://schemas.microsoft.com/office/onenote/2013/onenote">
<one:Notebook name="Notebook" nickname="Notebook" ID="**********" path="**********" lastModifiedTime="**********" color="**********">
<one:Section name="**********" ID="**********" path="**********" lastModifiedTime="**********" color="**********">
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="1"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="2"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="1"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="2"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="2"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="2"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="1"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="2"/>
<one:Page ID="**********" name="**********" dateTime="**********" lastModifiedTime="**********" pageLevel="2"/>
</one:Section>
</one:Notebook>
</one:Notebooks>
私は、次を使用して属性を引くことができた:
Dim oneNote = New OneNote.Application()
oneNote.GetHierarchy(Nothing, Microsoft.Office.Interop.OneNote.HierarchyScope.hsPages, strXML)
Dim xdoc As New XmlDocument()
xdoc.LoadXml(strXML)
For Each Element As XmlElement In xdoc.SelectNodes("//*")
TextBox1.Text = TextBox1.Text & "Processing element with name: " & Element.Name & Environment.NewLine
For Each Attribute As XmlAttribute In Element.Attributes
TextBox1.Text = TextBox1.Text & Convert.ToChar(Keys.Tab) & Attribute.Name & ": " & Attribute.Value & Environment.NewLine
Next
TextBox1.Text = TextBox1.Text & Environment.NewLine
Next
私は名前で特定の属性を引っ張るしようとすると、しかし、それは名前空間のエラーで戻ってきます。
For Each node As XmlNode In xdoc.DocumentElement.SelectNodes("//one:Notebooks/one:Notebook/one:Section")
TextBox1.Text = TextBox1.Text & node.Attributes.ItemOf("name").InnerText & Environment.NewLine
Next
私は、セクション、ページ名、ページのID、およびページレベルの名前で文字列配列を作成できるようにしたいと思います。どんな助けでも大歓迎です。あなたが名前空間を使用するXmlNamespaceManager
を使用する必要があり、常にXmlDocumentで