2012-01-30 3 views
5

Я программно добавляю абзац OpenXML в Word Document, и мне нужно уметь идентифицировать этот параграф как мой позже. Есть идеи, как это сделать? Я попытался вставить комментарий XML и расширенные атрибуты, но когда вы сохраняете документ в слове, он удаляет все неизвестные xml. Не имеет значения, является ли это атрибутом в абзаце или пробеге или элементом перед абзацем, каким-то образом я могу его идентифицировать позже. Кроме того, я не хочу, чтобы этот идентификатор был видимым в документе слова.Как я могу определить OpenXml Paragraph как один программно вставленный?

Примеры того, что я мог бы использовать:

<paragraph id="myParagraph"></paragraph> 
<otherelement>myparagraph</otherelement> 
<paragraph></paragraph> 

Любая помощь будет обалденно, потому что моя голова это больно от кирпичной стены я впадающей.

Спасибо!

+3

Вы можете обернуть его в элемент управления контентом (который может иметь идентификатор и произвольный тег), или вы можете поместить закладку в свой абзац. Word 2010 также поддерживает предоставление параграфа ID. – JasonPlutext

+1

Контроль контента - вот как эта проблема традиционно решается. Закладки - плохая идея, потому что они видны конечному пользователю и могут быть изменены и т. Д. Я не вижу никаких атрибутов «ID» в элементе абзаца OpenXML. – BrainSlugs83

ответ

2

Дайте абзацу атрибуту w: rsidR и присвойте ему уникальное значение; если нет значения, когда слово сохраняет документ, оно будет произвольно присвоить его 8-значное шестнадцатеричное значение в любом случае. (Значение не ограничено 8 цифрами или шестнадцатеричными символами. Word не будет изменять существующие идентификаторы RSID.)

При этом - убедитесь, что значения RSID уникальны и НЕ изменяют существующие атрибуты RSID - они являются уникальными ID для этого абзаца, и если документ разбивается на несколько версий и пользователь пытается объединить их вместе, эти RSID используются для определения того, какие абзацы изменились.

(Также отметим, что пробеги у RSIDs а.)

Если пользователь изменяет пункт, то RSID этого пункта может измениться.

Альтернативный вариант заключается в использовании пользовательских XML: http://msdn.microsoft.com/en-us/library/bb608618.aspx

Смежные вопросы