我尝试使用Microsoft参考更新OneNote中的页面: http://msdn.microsoft.com/en-us/library/office/jj680118.aspx
这是我的问题。当我尝试使用正确的ID更新我的页面时,它给我一个错误说:HRESULT异常:0x80042000。
这是我的代码:
static void UpdatePageContent()
{
ApplicationClass onApplication = new ApplicationClass();
String strImportXML;
strImportXML = @"<?xml version="+"1.0"+" encoding="+"utf-16"+"?>" +
" <one:Page xmlns:one="+"http://schemas.microsoft.com/office/onenote/12/2004/onenote\""+"" +
"ID=\"{5BE09697-903A-45DD-88D4-8AD301A3D91F}{1}{B0}\">" +
" <one:PageSettings RTL=\"false\" color=\"automatic\">" +
" <one:PageSize>" +
" <one:Automatic/>" +
" </one:PageSize>" +
" <one:RuleLines visible=\"false\"/>" +
" </one:PageSettings>" +
" <one:Title style=\"font-family:Calibri;" +
" font-size:17.0pt\" lang=\"en-US\">" +
" <one:OE alignment=\"left\">" +
" <one:T>" +
" <![CDATA[My Sample Page]]>" +
" </one:T>" +
" </one:OE>" +
" </one:Title>" +
" <one:Outline >" +
" <one:Position x=\"120\" y=\"160\"/>" +
" <one:Size width=\"120\" height=\"15\"/>" +
" <one:OEChildren>" +
" <one:OE alignment=\"left\">" +
" <one:T>" +
" <![CDATA[Sample Text]]>" +
" </one:T>" +
" </one:OE>" +
" </one:OEChildren>" +
" </one:Outline>" +
" </one:Page>";
// Update page content
try
{
onApplication.UpdatePageContent(strImportXML, System.DateTime.MinValue);
}
catch (COMException e)
{
Console.WriteLine("Error Message : " + e.Message);
}
}
我真的不知道如何解决这个问题。
答案 0 :(得分:1)
您的XML不是OneNote友好的。
这是一个错误代码列表: http://msdn.microsoft.com/en-us/library/office/jj680117.aspx
你可以摆脱第一线,因为@Sebastian已经表示它的格式不正确,我的经验是OneNote并不需要它。
另外,请记住,您不需要发送整个页面。您只需要发送页面的objId和任何更新的对象。所以一个大纲需要添加然后这也应该有效:
"<one:Page xmlns:one=\"http://schemas.microsoft.com/office/onenote/12/2004/onenote\" +
"ID=\"{5BE09697-903A-45DD-88D4-8AD301A3D91F}{1}{B0}\">" +
" <one:Outline >" +
" <one:Position x=\"120\" y=\"160\"/>" +
" <one:Size width=\"120\" height=\"15\"/>" +
" <one:OEChildren>" +
" <one:OE alignment=\"left\">" +
" <one:T>" +
" <![CDATA[New Text]]>" +
" </one:T>" +
" </one:OE>" +
" </one:OEChildren>" +
" </one:Outline>";
这个新的大纲将被添加。
如果您仍然遇到问题(它没有抱怨但内容没有更新),那么请检查UpdatePageContent的额外参数,当然在2013 API中可以发送最后修改日期以进行检查。有一个强制本地覆盖的参数。
答案 1 :(得分:0)
strImportXML字符串中存在一些问题,导致更新失败。
@"<?xml version="+"1.0"+" encoding="+"utf-16"+"?>"
至"<?xml version=\"" + "1.0" + "\" encoding=\"" + "utf-16" + "\"?>"
+ " " + "ID
... + "" + "ID
)onApplication
中找到/显示了网页ID
层次结构one:Page
元素中定义的命名空间(例如Office 2013 / 15.0