Word.CustomXmlPart class
Representa uma peça XML personalizada.
- Extends
Comentários
[ Conjunto de API: WordApi 1.4 ]
Exemplos
// 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();
});
Propriedades
context | O contexto do pedido associado ao objeto . Esta ação liga o processo do suplemento ao processo da aplicação anfitriã do Office. |
id | Obtém o ID da peça XML personalizada. |
namespace |
Obtém o URI do espaço de nomes da peça XML personalizada. |
Métodos
delete() | Exclui a parte XML personalizada. |
delete |
Elimina um atributo com o nome especificado do elemento identificado pelo xpath. |
delete |
Elimina o elemento identificado pelo xpath. |
get |
Obtém o conteúdo XML completo da peça XML personalizada. |
insert |
Insere um atributo com o nome e o valor indicados no elemento identificado pelo xpath. |
insert |
Insere o XML especificado no elemento principal identificado pelo xpath no índice de posição subordinada. |
load(options) | Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar |
load(property |
Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar |
load(property |
Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar |
query(xpath, namespace |
Consulta o conteúdo XML da peça XML personalizada. |
set |
Define o conteúdo XML completo da peça XML personalizada. |
toJSON() | Substitui o método JavaScript |
track() | Acompanha o objeto para ajuste automático com base nas alterações adjacentes no documento. Esta chamada é uma abreviatura de context.trackedObjects.add(thisObject). Se estiver a utilizar este objeto entre |
untrack() | Libere a memória associada a este objeto, se ele já tiver sido rastreado anteriormente. Esta chamada é abreviada para context.trackedObjects.remove(thisObject). Ter muitos objetos rastreados desacelera o aplicativo host, por isso, lembre-se de liberar todos os objetos adicionados após usá-los. Terá de chamar |
update |
Atualizações o valor de um atributo com o nome especificado do elemento identificado pelo xpath. |
update |
Atualizações o XML do elemento identificado pelo xpath. |
Detalhes da propriedade
context
O contexto do pedido associado ao objeto . Esta ação liga o processo do suplemento ao processo da aplicação anfitriã do Office.
context: RequestContext;
Valor da propriedade
id
Obtém o ID da peça XML personalizada.
readonly id: string;
Valor da propriedade
string
Comentários
[ Conjunto de API: WordApi 1.4 ]
Exemplos
// 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();
});
namespaceUri
Obtém o URI do espaço de nomes da peça XML personalizada.
readonly namespaceUri: string;
Valor da propriedade
string
Comentários
[ Conjunto de API: WordApi 1.4 ]
Exemplos
// 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.");
}
});
Detalhes do método
delete()
Exclui a parte XML personalizada.
delete(): void;
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Exemplos
// 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)
Elimina um atributo com o nome especificado do elemento identificado pelo xpath.
deleteAttribute(xpath: string, namespaceMappings: {
[key: string]: string;
}, name: string): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento único na notação XPath.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
- name
-
string
Obrigatório. Nome do atributo.
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.
deleteElement(xpath, namespaceMappings)
Elimina o elemento identificado pelo xpath.
deleteElement(xpath: string, namespaceMappings: {
[key: string]: string;
}): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento único na notação XPath.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.
getXml()
Obtém o conteúdo XML completo da peça XML personalizada.
getXml(): OfficeExtension.ClientResult<string>;
Retornos
OfficeExtension.ClientResult<string>
Comentários
[ Conjunto de API: WordApi 1.4 ]
Exemplos
// 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)
Insere um atributo com o nome e o valor indicados no elemento identificado pelo xpath.
insertAttribute(xpath: string, namespaceMappings: {
[key: string]: string;
}, name: string, value: string): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento único na notação XPath.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
- name
-
string
Obrigatório. Nome do atributo.
- value
-
string
Obrigatório. Valor do atributo .
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.
Exemplos
// 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)
Insere o XML especificado no elemento principal identificado pelo xpath no índice de posição subordinada.
insertElement(xpath: string, xml: string, namespaceMappings: {
[key: string]: string;
}, index?: number): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento principal único na notação XPath.
- xml
-
string
Obrigatório. Conteúdo XML a inserir.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
- index
-
number
Opcional. Posição baseada em zero na qual o novo XML a inserir. Se for omitido, o XML será acrescentado como o último subordinado deste elemento principal.
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.
Exemplos
// 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)
Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar context.sync()
antes de ler as propriedades.
load(options?: Word.Interfaces.CustomXmlPartLoadOptions): Word.CustomXmlPart;
Parâmetros
Fornece opções para as propriedades do objeto a carregar.
Retornos
load(propertyNames)
Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar context.sync()
antes de ler as propriedades.
load(propertyNames?: string | string[]): Word.CustomXmlPart;
Parâmetros
- propertyNames
-
string | string[]
Uma cadeia delimitada por vírgulas ou uma matriz de cadeias que especificam as propriedades a carregar.
Retornos
load(propertyNamesAndPaths)
Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar context.sync()
antes de ler as propriedades.
load(propertyNamesAndPaths?: {
select?: string;
expand?: string;
}): Word.CustomXmlPart;
Parâmetros
- propertyNamesAndPaths
-
{ select?: string; expand?: string; }
propertyNamesAndPaths.select
é uma cadeia delimitada por vírgulas que especifica as propriedades a carregar e propertyNamesAndPaths.expand
é uma cadeia delimitada por vírgulas que especifica as propriedades de navegação a carregar.
Retornos
query(xpath, namespaceMappings)
Consulta o conteúdo XML da peça XML personalizada.
query(xpath: string, namespaceMappings: {
[key: string]: string;
}): OfficeExtension.ClientResult<string[]>;
Parâmetros
- xpath
-
string
Obrigatório. Uma consulta XPath.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
Retornos
OfficeExtension.ClientResult<string[]>
Uma matriz em que cada item representa uma entrada correspondida pela consulta XPath.
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.
Exemplos
// 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.");
}
});
setXml(xml)
Define o conteúdo XML completo da peça XML personalizada.
setXml(xml: string): void;
Parâmetros
- xml
-
string
Obrigatório. Conteúdo XML a definir.
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Exemplos
// 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()
Substitui o método JavaScript toJSON()
para fornecer uma saída mais útil quando um objeto de API é transmitido para JSON.stringify()
. (JSON.stringify
por sua vez, chama o toJSON
método do objeto que lhe é transmitido.) Enquanto o objeto original Word.CustomXmlPart
é um objeto de API, o toJSON
método devolve um objeto JavaScript simples (escrito como Word.Interfaces.CustomXmlPartData
) que contém cópias rasas de quaisquer propriedades subordinadas carregadas do objeto original.
toJSON(): Word.Interfaces.CustomXmlPartData;
Retornos
track()
Acompanha o objeto para ajuste automático com base nas alterações adjacentes no documento. Esta chamada é uma abreviatura de context.trackedObjects.add(thisObject). Se estiver a utilizar este objeto entre .sync
chamadas e fora da execução sequencial de um lote ".run" e receber um erro "InvalidObjectPath" ao definir uma propriedade ou invocar um método no objeto, terá de adicionar o objeto à coleção de objetos controlados quando o objeto foi criado pela primeira vez. Se este objeto fizer parte de uma coleção, também deve controlar a coleção principal.
track(): Word.CustomXmlPart;
Retornos
untrack()
Libere a memória associada a este objeto, se ele já tiver sido rastreado anteriormente. Esta chamada é abreviada para context.trackedObjects.remove(thisObject). Ter muitos objetos rastreados desacelera o aplicativo host, por isso, lembre-se de liberar todos os objetos adicionados após usá-los. Terá de chamar context.sync()
antes de a libertação da memória ser aplicada.
untrack(): Word.CustomXmlPart;
Retornos
updateAttribute(xpath, namespaceMappings, name, value)
Atualizações o valor de um atributo com o nome especificado do elemento identificado pelo xpath.
updateAttribute(xpath: string, namespaceMappings: {
[key: string]: string;
}, name: string, value: string): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento único na notação XPath.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
- name
-
string
Obrigatório. Nome do atributo.
- value
-
string
Obrigatório. Novo valor do atributo .
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.
updateElement(xpath, xml, namespaceMappings)
Atualizações o XML do elemento identificado pelo xpath.
updateElement(xpath: string, xml: string, namespaceMappings: {
[key: string]: string;
}): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento único na notação XPath.
- xml
-
string
Obrigatório. Novo conteúdo XML a armazenar.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de espaço de nomes e cujos nomes de propriedade são aliases para os espaços de nomes correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia que não utilize carateres XPath reservados, como a barra "/".
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se algum elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo tem de prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore é a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
tem de ser /Day/greg:Month/Week, em que greg é um alias que está mapeado para "http://calendartypes.org/xsds/GregorrianCalendar" no parâmetro namespaceMappings.