Word.CustomXmlPart class
Представляет настраиваемую часть XML.
- Extends
Комментарии
Используется
- Word. CustomXmlNode: ownerPart
- Word. CustomXmlPartCollection: add, getItem, getItemOrNullObject, items
- Word. CustomXmlPartScopedCollection: getItem, getItemOrNullObject, getOnlyItem, getOnlyItemOrNullObject, items
- Word. Документ: selectUnlinkedControls
- Word. XmlMapping: customXmlPart
- Word. XmlSetMappingOptions: исходный код
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part.yaml
// Adds a custom XML part.
await Word.run(async (context) => {
const originalXml =
"<Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>";
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.add(originalXml);
customXmlPart.load("id");
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Added custom XML part:", readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings: Word.SettingCollection = context.document.settings;
settings.add("ContosoReviewXmlPartId", customXmlPart.id);
await context.sync();
});
Свойства
| built |
Получает сведения о том, является ли параметр |
| context | Контекст запроса, связанный с объектом. Это соединяет процесс надстройки с процессом основного приложения Office. |
| document |
Получает корневой элемент связанной области данных в документе. Если регион пуст, свойство возвращает |
| errors | Получает объект, предоставляющий |
| id | Получает идентификатор пользовательской части XML. |
| namespace |
Получает набор сопоставлений префиксов пространства имен, используемых для текущего |
| namespace |
Получает универсальный код ресурса (URI) пространства имен для пользовательской части XML. |
| schema |
Определяет объект, |
| xml | Получает XML-представление текущего |
Методы
| add |
Добавляет узел в дерево XML. |
| delete() | Удаляет пользовательскую XML-часть. |
| delete |
Удаляет атрибут с заданным именем из элемента, определенного с помощью xpath. |
| delete |
Удаляет элемент, определенный параметром xpath. |
| get |
Получает полное содержимое XML пользовательской части XML. |
| insert |
Вставляет атрибут с заданным именем и значением в элемент, определенный xpath. |
| insert |
Вставляет данный XML-код в родительский элемент, определенный xpath, в дочернем индексе позиции. |
| load(options) | Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод |
| load(property |
Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод |
| load(property |
Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод |
| load |
Заполняет |
| query(xpath, namespace |
Запрашивает содержимое XML пользовательской части XML. |
| select |
Выбирает коллекцию узлов из пользовательской части XML. |
| select |
Выбирает один узел в пользовательской части XML, соответствующей выражению XPath. |
| set(properties, options) | Задает несколько свойств объекта одновременно. Вы можете передать либо простой объект с соответствующими свойствами, либо другой объект API того же типа. |
| set(properties) | Одновременно задает несколько свойств объекта на основе существующего загруженного объекта. |
| set |
Задает полное содержимое XML пользовательской части XML. |
| toJSON() | Переопределяет метод JavaScript |
| track() | Отслеживает объект для автоматической корректировки с учетом окружающих изменений в документе. Этот вызов является сокращением от context.trackedObjects.add(thisObject). Если вы используете этот объект во всех |
| untrack() | Освобождает память, связанную с этим объектом, если он ранее отслеживался. Этот вызов является сокращением от context.trackedObjects.remove(thisObject). Наличие большого количества отслеживаемых объектов замедляет ведущее приложение, поэтому не забывайте освобождать любые добавленные объекты после завершения их использования. Вам нужно позвонить |
| update |
Обновления значения атрибута с заданным именем элемента, определенного xpath. |
| update |
Обновления XML элемента, определенного xpath. |
Сведения о свойстве
builtIn
Получает сведения о том, является ли параметр CustomXmlPart встроенным.
readonly builtIn: boolean;
Значение свойства
boolean
Комментарии
context
Контекст запроса, связанный с объектом. Это соединяет процесс надстройки с процессом основного приложения Office.
context: RequestContext;
Значение свойства
documentElement
Получает корневой элемент связанной области данных в документе. Если регион пуст, свойство возвращает Nothing.
readonly documentElement: Word.CustomXmlNode;
Значение свойства
Комментарии
errors
Примечание
Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.
Получает объект, предоставляющий CustomXmlValidationErrorCollection доступ ко всем ошибкам проверки XML.
readonly errors: Word.CustomXmlValidationErrorCollection;
Значение свойства
Комментарии
id
Получает идентификатор пользовательской части XML.
readonly id: string;
Значение свойства
string
Комментарии
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part.yaml
// Adds a custom XML part.
await Word.run(async (context) => {
const originalXml =
"<Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>";
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.add(originalXml);
customXmlPart.load("id");
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Added custom XML part:", readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings: Word.SettingCollection = context.document.settings;
settings.add("ContosoReviewXmlPartId", customXmlPart.id);
await context.sync();
});
namespaceManager
Получает набор сопоставлений префиксов пространства имен, используемых для текущего CustomXmlPart объекта.
readonly namespaceManager: Word.CustomXmlPrefixMappingCollection;
Значение свойства
Комментарии
namespaceUri
Получает универсальный код ресурса (URI) пространства имен для пользовательской части XML.
readonly namespaceUri: string;
Значение свойства
string
Комментарии
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part-ns.yaml
// Original XML: <Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Gets the namespace URI from a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
customXmlPart.load("namespaceUri");
await context.sync();
const namespaceUri = customXmlPart.namespaceUri;
console.log(`Namespace URI: ${JSON.stringify(namespaceUri)}`);
} else {
console.warn("Didn't find custom XML part.");
}
});
schemaCollection
Определяет объект, CustomXmlSchemaCollection представляющий набор схем, присоединенных к связанной области данных в документе.
schemaCollection: Word.CustomXmlSchemaCollection;
Значение свойства
Комментарии
xml
Получает XML-представление текущего CustomXmlPart объекта.
readonly xml: string;
Значение свойства
string
Комментарии
Сведения о методе
addNode(parent, options)
Добавляет узел в дерево XML.
addNode(parent: Word.CustomXmlNode, options?: Word.CustomXmlAddNodeOptions): OfficeExtension.ClientResult<number>;
Параметры
- parent
- Word.CustomXmlNode
Родительский узел, в который будет добавлен новый узел.
- options
- Word.CustomXmlAddNodeOptions
Необязательный параметр. Параметры, определяющие добавляемый узел.
Возвращаемое значение
OfficeExtension.ClientResult<number>
Комментарии
delete()
Удаляет пользовательскую XML-часть.
delete(): void;
Возвращаемое значение
void
Комментарии
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part.yaml
// Original XML: <Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Deletes a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
let customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
const xmlBlob = customXmlPart.getXml();
customXmlPart.delete();
customXmlPart = context.document.customXmlParts.getItemOrNullObject(xmlPartIDSetting.value);
await context.sync();
if (customXmlPart.isNullObject) {
console.log(`The XML part with the ID ${xmlPartIDSetting.value} has been deleted.`);
// Delete the associated setting too.
xmlPartIDSetting.delete();
await context.sync();
} else {
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.error(`This is strange. The XML part with the id ${xmlPartIDSetting.value} wasn't deleted:`, readableXml);
}
} else {
console.warn("Didn't find custom XML part to delete.");
}
});
...
// Original XML: <Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Deletes a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
let customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
const xmlBlob = customXmlPart.getXml();
customXmlPart.delete();
customXmlPart = context.document.customXmlParts.getItemOrNullObject(xmlPartIDSetting.value);
await context.sync();
if (customXmlPart.isNullObject) {
console.log(`The XML part with the ID ${xmlPartIDSetting.value} has been deleted.`);
// Delete the associated setting too.
xmlPartIDSetting.delete();
await context.sync();
} else {
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.error(
`This is strange. The XML part with the id ${xmlPartIDSetting.value} wasn't deleted:`,
readableXml
);
}
} else {
console.warn("Didn't find custom XML part to delete.");
}
});
deleteAttribute(xpath, namespaceMappings, name)
Удаляет атрибут с заданным именем из элемента, определенного с помощью xpath.
deleteAttribute(xpath: string, namespaceMappings: {
[key: string]: string;
}, name: string): void;
Параметры
- xpath
-
string
Абсолютный путь к одному элементу в нотации XPath.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
- name
-
string
Имя атрибута.
Возвращаемое значение
void
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.
deleteElement(xpath, namespaceMappings)
Удаляет элемент, определенный параметром xpath.
deleteElement(xpath: string, namespaceMappings: {
[key: string]: string;
}): void;
Параметры
- xpath
-
string
Абсолютный путь к одному элементу в нотации XPath.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
Возвращаемое значение
void
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.
getXml()
Получает полное содержимое XML пользовательской части XML.
getXml(): OfficeExtension.ClientResult<string>;
Возвращаемое значение
OfficeExtension.ClientResult<string>
Комментарии
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part-ns.yaml
// Adds a custom XML part.
// If you want to populate the CustomXml.namespaceUri property, you must include the xmlns attribute.
await Word.run(async (context) => {
const originalXml =
"<Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>";
const customXmlPart = context.document.customXmlParts.add(originalXml);
customXmlPart.load(["id", "namespaceUri"]);
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log(`Added custom XML part with namespace URI ${customXmlPart.namespaceUri}:`, readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings: Word.SettingCollection = context.document.settings;
settings.add("ContosoReviewXmlPartIdNS", customXmlPart.id);
await context.sync();
});
...
// Adds a custom XML part.
await Word.run(async (context) => {
const originalXml =
"<Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>";
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.add(originalXml);
customXmlPart.load("id");
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Added custom XML part:", readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings: Word.SettingCollection = context.document.settings;
settings.add("ContosoReviewXmlPartId", customXmlPart.id);
await context.sync();
});
insertAttribute(xpath, namespaceMappings, name, value)
Вставляет атрибут с заданным именем и значением в элемент, определенный xpath.
insertAttribute(xpath: string, namespaceMappings: {
[key: string]: string;
}, name: string, value: string): void;
Параметры
- xpath
-
string
Абсолютный путь к одному элементу в нотации XPath.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
- name
-
string
Имя атрибута.
- value
-
string
Значение атрибута.
Возвращаемое значение
void
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part-ns.yaml
// Original XML: <Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Inserts an attribute into a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
// The insertAttribute method inserts an attribute with the given name and value into the element identified by the xpath parameter.
customXmlPart.insertAttribute(
"/contoso:Reviewers",
{ contoso: "http://schemas.contoso.com/review/1.0" },
"Nation",
"US"
);
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Successfully inserted attribute:", readableXml);
} else {
console.warn("Didn't find custom XML part to insert attribute into.");
}
});
...
// Original XML: <Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Inserts an attribute into a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
// The insertAttribute method inserts an attribute with the given name and value into the element identified by the xpath parameter.
customXmlPart.insertAttribute("/Reviewers", { contoso: "http://schemas.contoso.com/review/1.0" }, "Nation", "US");
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Successfully inserted attribute:", readableXml);
} else {
console.warn("Didn't find custom XML part to insert attribute into.");
}
});
insertElement(xpath, xml, namespaceMappings, index)
Вставляет данный XML-код в родительский элемент, определенный xpath, в дочернем индексе позиции.
insertElement(xpath: string, xml: string, namespaceMappings: {
[key: string]: string;
}, index?: number): void;
Параметры
- xpath
-
string
Абсолютный путь к единственному родительскому элементу в нотации XPath.
- xml
-
string
XML-содержимое для вставки.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
- index
-
number
Необязательный параметр. Позиция с нулевой отставкой, в которую будет вставлен новый XML-файл. Если этот параметр опущен, XML будет добавлен как последний дочерний элемент этого родительского элемента.
Возвращаемое значение
void
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part-ns.yaml
// Original XML: <Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Inserts an element into a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
// The insertElement method inserts the given XML under the parent element identified by the xpath parameter at the provided child position index.
customXmlPart.insertElement(
"/contoso:Reviewers",
"<Lead>Mark</Lead>",
{ contoso: "http://schemas.contoso.com/review/1.0" },
0
);
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Successfully inserted element:", readableXml);
} else {
console.warn("Didn't find custom XML part to insert element into.");
}
});
...
// Original XML: <Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Inserts an element into a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
// The insertElement method inserts the given XML under the parent element identified by the xpath parameter at the provided child position index.
customXmlPart.insertElement(
"/Reviewers",
"<Lead>Mark</Lead>",
{ contoso: "http://schemas.contoso.com/review/1.0" },
0
);
const xmlBlob = customXmlPart.getXml();
await context.sync();
const readableXml = addLineBreaksToXML(xmlBlob.value);
console.log("Successfully inserted element:", readableXml);
} else {
console.warn("Didn't find custom XML part to insert element into.");
}
});
load(options)
Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().
load(options?: Word.Interfaces.CustomXmlPartLoadOptions): Word.CustomXmlPart;
Параметры
Предоставляет параметры для загружаемых свойств объекта.
Возвращаемое значение
load(propertyNames)
Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().
load(propertyNames?: string | string[]): Word.CustomXmlPart;
Параметры
- propertyNames
-
string | string[]
Строка с разделителями-запятыми или массив строк, которые определяют свойства для загрузки.
Возвращаемое значение
load(propertyNamesAndPaths)
Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().
load(propertyNamesAndPaths?: {
select?: string;
expand?: string;
}): Word.CustomXmlPart;
Параметры
- propertyNamesAndPaths
-
{ select?: string; expand?: string; }
propertyNamesAndPaths.select — это строка с разделителями-запятыми, указывающая загружаемые свойства, и строка propertyNamesAndPaths.expand через запятую, указывающая свойства навигации для загрузки.
Возвращаемое значение
loadXml(xml)
Заполняет CustomXmlPart объект из строки XML.
loadXml(xml: string): OfficeExtension.ClientResult<boolean>;
Параметры
- xml
-
string
Строка XML для загрузки.
Возвращаемое значение
OfficeExtension.ClientResult<boolean>
Комментарии
query(xpath, namespaceMappings)
Запрашивает содержимое XML пользовательской части XML.
query(xpath: string, namespaceMappings: {
[key: string]: string;
}): OfficeExtension.ClientResult<string[]>;
Параметры
- xpath
-
string
Запрос XPath.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
Возвращаемое значение
OfficeExtension.ClientResult<string[]>
Массив, где каждый элемент представляет запись, соответствующую запросу XPath.
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part-ns.yaml
// Original XML: <Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Queries a custom XML part for elements matching the search terms.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
const xpathToQueryFor = "/contoso:Reviewers";
const clientResult = customXmlPart.query(xpathToQueryFor, {
contoso: "http://schemas.contoso.com/review/1.0"
});
await context.sync();
console.log(`Queried custom XML part for ${xpathToQueryFor} and found ${clientResult.value.length} matches:`);
for (let i = 0; i < clientResult.value.length; i++) {
console.log(clientResult.value[i]);
}
} else {
console.warn("Didn't find custom XML part to query.");
}
});
...
// Original XML: <Reviewers><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Queries a custom XML part for elements matching the search terms.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
const xpathToQueryFor = "/Reviewers/Reviewer";
const clientResult = customXmlPart.query(xpathToQueryFor, {
contoso: "http://schemas.contoso.com/review/1.0"
});
await context.sync();
console.log(`Queried custom XML part for ${xpathToQueryFor} and found ${clientResult.value.length} matches:`);
for (let i = 0; i < clientResult.value.length; i++) {
console.log(clientResult.value[i]);
}
} else {
console.warn("Didn't find custom XML part to query.");
}
});
selectNodes(xPath)
Выбирает коллекцию узлов из пользовательской части XML.
selectNodes(xPath: string): Word.CustomXmlNodeCollection;
Параметры
- xPath
-
string
Выражение XPath для оценки.
Возвращаемое значение
Комментарии
selectSingleNode(xPath)
Выбирает один узел в пользовательской части XML, соответствующей выражению XPath.
selectSingleNode(xPath: string): Word.CustomXmlNode;
Параметры
- xPath
-
string
Выражение XPath для оценки.
Возвращаемое значение
Комментарии
set(properties, options)
Задает несколько свойств объекта одновременно. Вы можете передать либо простой объект с соответствующими свойствами, либо другой объект API того же типа.
set(properties: Interfaces.CustomXmlPartUpdateData, options?: OfficeExtension.UpdateOptions): void;
Параметры
- properties
- Word.Interfaces.CustomXmlPartUpdateData
Объект JavaScript со свойствами, структурированными изоморфно свойствам объекта, для которого вызывается метод.
- options
- OfficeExtension.UpdateOptions
Предоставляет возможность подавления ошибок, если объект properties пытается задать какие-либо свойства только для чтения.
Возвращаемое значение
void
set(properties)
Одновременно задает несколько свойств объекта на основе существующего загруженного объекта.
set(properties: Word.CustomXmlPart): void;
Параметры
- properties
- Word.CustomXmlPart
Возвращаемое значение
void
setXml(xml)
Задает полное содержимое XML пользовательской части XML.
setXml(xml: string): void;
Параметры
- xml
-
string
XML-содержимое, которое необходимо установить.
Возвращаемое значение
void
Комментарии
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-custom-xml-part-ns.yaml
// Original XML: <Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>
// Replaces a custom XML part.
await Word.run(async (context) => {
const settings: Word.SettingCollection = context.document.settings;
const xmlPartIDSetting: Word.Setting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const customXmlPart: Word.CustomXmlPart = context.document.customXmlParts.getItem(xmlPartIDSetting.value);
const originalXmlBlob = customXmlPart.getXml();
await context.sync();
let readableXml = addLineBreaksToXML(originalXmlBlob.value);
console.log("Original custom XML part:", readableXml);
// The setXml method replaces the entire XML part.
customXmlPart.setXml(
"<Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>John</Reviewer><Reviewer>Hitomi</Reviewer></Reviewers>"
);
const updatedXmlBlob = customXmlPart.getXml();
await context.sync();
readableXml = addLineBreaksToXML(updatedXmlBlob.value);
console.log("Replaced custom XML part:", readableXml);
} else {
console.warn("Didn't find custom XML part to replace.");
}
});
toJSON()
Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringify, в свою очередь, вызывает toJSON метод переданного ему объекта.) В то время как исходный Word.CustomXmlPart объект является объектом API, toJSON метод возвращает простой объект JavaScript (типизированный как Word.Interfaces.CustomXmlPartData), который содержит неглубокие копии любых загруженных дочерних свойств исходного объекта.
toJSON(): Word.Interfaces.CustomXmlPartData;
Возвращаемое значение
track()
Отслеживает объект для автоматической корректировки с учетом окружающих изменений в документе. Этот вызов является сокращением от context.trackedObjects.add(thisObject). Если вы используете этот объект во всех .sync вызовах и вне последовательного выполнения пакета ".run" и получаете сообщение об ошибке "InvalidObjectPath" при установке свойства или вызове метода объекта, необходимо добавить объект в коллекцию отслеживаемых объектов при его первом создании. Если этот объект является частью семейства, следует также отслеживать родительскую коллекцию.
track(): Word.CustomXmlPart;
Возвращаемое значение
untrack()
Освобождает память, связанную с этим объектом, если он ранее отслеживался. Этот вызов является сокращением от context.trackedObjects.remove(thisObject). Наличие большого количества отслеживаемых объектов замедляет ведущее приложение, поэтому не забывайте освобождать любые добавленные объекты после завершения их использования. Вам нужно позвонить context.sync() , прежде чем освобождение памяти вступит в силу.
untrack(): Word.CustomXmlPart;
Возвращаемое значение
updateAttribute(xpath, namespaceMappings, name, value)
Обновления значения атрибута с заданным именем элемента, определенного xpath.
updateAttribute(xpath: string, namespaceMappings: {
[key: string]: string;
}, name: string, value: string): void;
Параметры
- xpath
-
string
Абсолютный путь к одному элементу в нотации XPath.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
- name
-
string
Имя атрибута.
- value
-
string
Новое значение атрибута.
Возвращаемое значение
void
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.
updateElement(xpath, xml, namespaceMappings)
Обновления XML элемента, определенного xpath.
updateElement(xpath: string, xml: string, namespaceMappings: {
[key: string]: string;
}): void;
Параметры
- xpath
-
string
Абсолютный путь к одному элементу в нотации XPath.
- xml
-
string
Новое содержимое XML для сохранения.
- namespaceMappings
-
{ [key: string]: string; }
Объект, свойства которого являются именами пространств имен, а имена свойств — псевдонимами для соответствующих пространств имен. Например, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Имена свойств (например, "greg") могут быть любой строкой, в которой не используются зарезервированные символы XPath, например, косая черта "/".
Возвращаемое значение
void
Комментарии
Если какой-либо элемент в дереве имеет атрибут xmlns (значение которого обычно, но не всегда, является URI), псевдоним для этого значения атрибута должен предшествовать имени элемента в параметре xpath. Например, предположим, что дерево выглядит следующим образом:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
Значение xpath <Week> должно быть равно /Day/greg:Month/Week, где greg — это псевдоним, сопоставленный с "http://calendartypes.org/xsds/GregorianCalendar" в параметре namespaceMappings.