- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个 POC 应用程序,我希望能够在其中根据各种条件在 Word 文档中动态创建书签。
到目前为止,我已经设法实际创建和添加 BookmarkStart 和 BookmarkEnd 元素,但我正在尝试弄清楚应该如何设置“Id”属性。
在这方面我能找到的唯一规范是来自 MSDN 的 BookmarkStart 元素示例:
id (Annotation Identifier)
Specifies a unique identifier for an annotation within a WordprocessingML document. The restrictions on the id attribute, if any, are defined by the parent XML element.
If this attribute is omitted, then the document is non-conformant.
[Example: Consider an annotation represented using the following WordprocessingML fragment:
<… w:id="1" … >
…
</…>
The id attribute specifies that the ID of the current annotation is 1. This value is used to uniquely identify this annotation within the document content. end example]
The possible values for this attribute are defined by the ST_DecimalNumber simple type (§17.18.10).
所以,我知道它必须是一个数字,它是强制性的,而且 ID 必须是唯一的(呃!)。现在,它应该只在书签元素之间或在定义 id 的所有元素之间是唯一的吗?我应该如何制作这样的身份证件?我正在考虑使用 Linq 将所有 id 获取为数值(整数?对我来说“小数”意味着 float )然后将 1 加到最大值,但这似乎有点极端。
到目前为止,我的解决方案包含以下功能:
private static string ComputeNewId(OpenXmlElement root)
{
return ((from b in root.Descendants<BookmarkStart>() select Decimal.Parse(b.Id)).Max() + 1).ToString();
}
到目前为止它似乎在工作,但老实说我不知道从长远来看这是否会可靠,因此非常欢迎任何有关此的额外信息。
谢谢大家。
最佳答案
我会尝试依次回答您的每个问题:
is it supposed to be unique only between bookmark elements, or between all elements defining an id?
Id 只需要在 BoookmarkStart
元素中是唯一的。 BookmarkStart
必须有一个相应的BookmarkEnd
具有相同的 Id,否则文档不兼容。
§17.13.6.2 书签开始状态:
This element specifies the start of a bookmark within a WordprocessingML document. This start marker is matched with the appropriately paired end marker by matching the value of the id attribute from the associated bookmarkEnd element.
And how should I produce such an id?
获取当前最大的 Id 并添加一个是明智的做法。您可能只找到一次最大值并从那时起存储它,但与您已经完成的相比,这不会产生巨大差异我不会想到。
integers? to me "Decimal" implies floating-point
ST_DecimalNumber
只允许整数。我想decimal例如,是对以 10 为底数而不是十六进制或二进制数的引用。
来自第 17.18.10 节(强调我的):
This simple type specifies that its contents contain a whole decimal number (positive or negative), whose contents are interpreted based on the context of the parent XML element.
接着说:
This simple type's contents are a restriction of the W3C XML Schema integer datatype.
关于c# - 为 OpenXML 文档中的新书签定义正确的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29772833/
我正在尝试创建一个在线书签系统。我已经设法从用户那里获取 URL 并将其存储到数据库中。但我也想采用“标题和标签”谁能帮我编写代码.. function add_bm($new_url) {
我目前正在开发一个动态使用数据库的应用程序。 这意味着它被设计为可以在任何时间、任何结构上与任何数据库一起使用。 我担心的是,我希望对某些记录进行“标记”或添加书签,因此我需要使用 Filter 属性
我正在创建一些许多人称之为书签栏的东西,但在网站本身内。基本上我有一个常规的 Bootstrap navbar很少有菜单项上有“图钉”。通过按图钉,用户可以固定该菜单项以快速访问我创建的侧边栏。 现在
我最近在聊天部分了解到,如果使用书签,则可以渲染 LaTeX: http://meta.math.stackexchange.com/a/3297 stackexchange 站点都渲染代码像这样。
我有这个可爱的 javascript 书签... javascript:var nam="blablabla&name"; var els=document.getElementsByName
我经常使用网页的三种变体,1) 开发网址,2) 预览/暂存网址,以及 3) 实时网址。 我想创建一个链接(小书签?)然后我可以添加到我的书签栏,这将更改部分 URL 字符串(基本上是页面名称),然后将
这个问题在这里已经有了答案: Add to browser favorites/bookmarks from JavaScript but for all browsers (mine doesn'
我正在尝试编写一个小书签来检测用户是否在已解析的页面上,如果他不在,则应将值传递给 API。 if (window.location.indexOf("thequeue.org") >= 0) {
有没有人知道为什么下面的 JavaScript 代码在 Firefox 上没有任何问题,并且在 IE7 上也能正常工作,但在 IE8 上却不行了?我不知道,我很感激任何提示:-) 我已将该代码作为收藏
一个页面中有很多链接,我需要快速单击其中包含文本“删除”的链接。这会导致 AJAX 请求,因此需要稍微暂停一下。什么是 JavaScript 书签代码(没有库,例如 jQuery),它将快速调用直接作
我需要一个可以单击按钮的 JavaScript 书签。问题是,页面上有 100 多个按钮,它们的值都相同。名字很独特,但是很长。 元素的全名类似于: actions[http://apps.faceb
我在制作 javascript 书签时遇到了问题,其中的代码同时包含 "" 引号和 '' 引号。举例来说,我的代码如下, Temporary HTML Doc
希望大家帮帮我。我似乎无法弄清楚如何制作一个小书签来选择网页下拉菜单中的选项。 希望实现:在我的chrome浏览器上做一个书签。当我在此页面上单击它时,它将选择下拉列表并在成员框中选择级别 2 网页的
当我浏览文件系统时,我设法在一个窗口中完成了繁琐的工作。 改善人体工程学,我决定为我最常用的目录创建书签,其短名称如:'lwt'、'eve' 等。但每次打开书签时,都会创建新的目录缓冲区,即使旧缓冲区
我正在努力了解 HATEOAS。 让我们通过一个例子来工作。客户端将浏览器加载到 getemails.com。为简单起见,让我们假设对 getemails.com 的调用访问了服务器并返回一个电子邮件
我想每周在 Safari 中备份一次。告诉我如何使用终端命令导出书签?谢谢你。 最佳答案 plutil -convert xml1 -o ~/Desktop/SafariBookmarks.xml ~
我想知道我们如何从 Mac OS X 上的另一个 Cocoa 应用程序访问 Safari 书签,以一种对 future 安全的方式。 您可能知道,检索 Safari 书签的常见机制有两种: 要么阅读
有谁知道如何通过 SDK 以编程方式访问“ map ”应用程序的书签?如果可能的话,我想阅读和书写书签。有想法吗? 谢谢! 最佳答案 我很确定答案是否定的。我考虑了两种可能的解决方案: 您可以直接访问
谁能告诉我怎么转 Top 又名页面顶部链接到书签。 不太了解 JavaScript,无法实现我想要的效果。 或者,如果我使用了错误的代码,那么你能不能帮我修好它,然后把它变成小书签。 最佳答案 创建
如何在vim中设置书签?我想为一些行和函数添加书签。你如何在代码上做书签?我的代码是用 C 编写的。 最佳答案 如果您输入 ma ,它将在当前位置的当前行上创建书签,名称为 a . 例如,键入 ma在
我是一名优秀的程序员,十分优秀!