<xsl:template match="o:CustomDocumentProperties"> <xsl:copy> <xsl:apply-templates select ="@*|node()" /> </xsl:copy> </xsl:template>
В Word 2003 я могу получить пользовательские свойства документа Word 2003 с помощью выражения соответствия xsl: template выше.
Какой синтаксис использовать, если я работаю в офисе Word 2007 или 2010?
Пользовательские свойства документа поддерживаются в элементе Properties и используют следующее пространство имен:
Properties
http://schemas.openxmlformats.org/officeDocument/2006/extended-properties
Пример пользовательского свойства для номера телефона:
<pkg:part pkg:name="/docProps/custom.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.custom-properties+xml" pkg:padding="256"> <pkg:xmlData> <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"> <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="3" name="Telephone number"> <vt:lpwstr>555-555-5555</vt:lpwstr> </property> </Properties> </pkg:xmlData> </pkg:part>
Предполагая, что вы объявляете пространство имен с префиксом "prop" в вашей таблице стилей следующим образом:
xmlns:prop="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
если вы сохраняете как один XML-файл, вы можете найти их с помощью следующего XPath:
pkg:package/pkg:part/pkg:xmlData/prop:Properties
и вы можете создать шаблонное соответствие следующим образом:
<xsl:template match="prop:Properties"> <xsl:copy> <xsl:apply-templates select ="@*|node()" /> </xsl:copy> </xsl:template>