是否存在支持从Microsoft Onenote documents以编程方式提取信息的PHP / Ruby库或Web服务?
该解决方案将在Web应用程序后端实现。
我不是在寻找特定于Windows的解决方案。此外,我不是在寻找需要用户下载应用程序扩展或可安装软件的解决方案。
答案 0 :(得分:3)
这是一个跨平台的单音符解析器。 (.one - > .html)这是非常原始的,但它是开源的,可能会让你前进
https://github.com/dropbox/onenote-parser 如果它可以帮助您解析文件格式。
随意使用它(apache许可证)
答案 1 :(得分:1)
您可以使用Microsoft.Office.Interop.OneNote API在C#中轻松编写自己的提取程序实用程序。
您可以在this msdn article中找到详细的演练,然后您可以使用与此类似的代码访问内容:
using System;
using System.Linq;
using System.Xml.Linq;
using Microsoft.Office.Interop.OneNote;
class Program
{
static void Main(string[] args)
{
var onenoteApp = new Application();
string notebookXml;
onenoteApp.GetHierarchy(null, HierarchyScope.hsPages, out notebookXml);
var doc = XDocument.Parse(notebookXml);
var ns = doc.Root.Name.Namespace;
var pageNode = doc.Descendants(ns + "Page").Where(n =>
n.Attribute("name").Value == "Test page").FirstOrDefault();
if (pageNode != null)
{
string pageXml;
onenoteApp.GetPageContent(pageNode.Attribute("ID").Value, out pageXml);
Console.WriteLine(XDocument.Parse(pageXml));
}
}
}
您可以阅读api文档here,其中还包含一些示例。
如果您的环境不允许使用此官方库,那么我不知道unix端口,但Office文档以XML格式存储。您只需要一个XML解析器来提取所需的信息。 这里有OneNote format specification。 (顶部有最新更新的pdf链接) 然后,您可以使用您选择的解析器并创建您的小实用程序。我对红宝石的建议是libxml。
我希望这符合您的需求。
答案 2 :(得分:0)
最好的办法是学习如何在PHP / Ruby中进行XML解析,并分析OneNote文档以确定它们的结构。 一旦你想出.one文件,就可以使用PHP从中提取所需的信息。 检查this链接,可能对您有帮助。