Word.CustomXmlPart class
Representa uma parte XML personalizada.
- Extends
Comentários
[ Conjunto de API: WordApi 1.4 ]
Propriedades
context | O contexto de solicitação associado ao objeto. Isso conecta o processo do suplemento ao processo do aplicativo host do Office. |
id | Obtém a ID da parte XML personalizada. |
namespace |
Obtém o URI do namespace da parte XML personalizada. |
Métodos
delete() | Exclui a parte XML personalizada. |
delete |
Exclui um atributo com o nome fornecido do elemento identificado pelo xpath. |
delete |
Exclui o elemento identificado por xpath. |
get |
Obtém o conteúdo XML completo da parte XML personalizada. |
insert |
Insere um atributo com o nome e o valor fornecidos ao elemento identificado pelo xpath. |
insert |
Insere o XML fornecido no elemento pai identificado pelo xpath no índice de posição filho. |
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 parte XML personalizada. |
set |
Define o conteúdo XML completo da parte XML personalizada. |
toJSON() | Substitui o método JavaScript |
track() | Acompanha o objeto para ajuste automático com base nas alterações adjacentes no documento. Essa chamada é uma abreviação para context.trackedObjects.add(thisObject). Se você estiver usando esse objeto entre |
untrack() | Libere a memória associada a este objeto, se ele já tiver sido rastreado anteriormente. Essa 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. Você precisará chamar |
update |
Atualizações o valor de um atributo com o nome determinado do elemento identificado pelo xpath. |
update |
Atualizações XML do elemento identificado por xpath. |
Detalhes da propriedade
context
O contexto de solicitação associado ao objeto. Isso conecta o processo do suplemento ao processo do aplicativo host do Office.
context: RequestContext;
Valor da propriedade
id
Obtém a ID da parte 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 = 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:");
console.log(readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings = context.document.settings;
settings.add("ContosoReviewXmlPartId", customXmlPart.id);
await context.sync();
});
namespaceUri
Obtém o URI do namespace da parte 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
let 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);
const strangeMessage = `This is strange. The XML part with the id ${xmlPartIDSetting.value} wasn't deleted:\n${readableXml}`;
console.error(strangeMessage);
}
} 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
let 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);
const strangeMessage = `This is strange. The XML part with the id ${xmlPartIDSetting.value} wasn't deleted:\n${readableXml}`;
console.error(strangeMessage);
}
} else {
console.warn("Didn't find custom XML part to delete");
}
});
deleteAttribute(xpath, namespaceMappings, name)
Exclui um atributo com o nome fornecido 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 namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
- name
-
string
Obrigatório. Nome do atributo.
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" no parâmetro namespaceMappings.
deleteElement(xpath, namespaceMappings)
Exclui o elemento identificado por 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 namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" no parâmetro namespaceMappings.
getXml()
Obtém o conteúdo XML completo da parte 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}:`);
console.log(readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings = 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 = 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:");
console.log(readableXml);
// Store the XML part's ID in a setting so the ID is available to other functions.
const settings = 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 fornecidos ao 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 namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
- 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 qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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:");
console.log(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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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:");
console.log(readableXml);
} else {
console.warn("Didn't find custom XML part to insert attribute into");
}
});
insertElement(xpath, xml, namespaceMappings, index)
Insere o XML fornecido no elemento pai identificado pelo xpath no índice de posição filho.
insertElement(xpath: string, xml: string, namespaceMappings: {
[key: string]: string;
}, index?: number): void;
Parâmetros
- xpath
-
string
Obrigatório. Caminho absoluto para o elemento pai único na notação XPath.
- xml
-
string
Obrigatório. Conteúdo XML a ser inserido.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
- index
-
number
Opcional. Posição baseada em zero na qual o novo XML a ser inserido. Se omitido, o XML será acrescentado como o último filho desse pai.
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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:");
console.log(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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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:");
console.log(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 quais propriedades do objeto 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 de caracteres delimitada por vírgulas ou uma matriz de cadeias de caracteres que especificam as propriedades a serem carregadas.
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 de caracteres delimitada por vírgulas que especifica as propriedades a serem carregadas e propertyNamesAndPaths.expand
é uma cadeia de caracteres delimitada por vírgulas que especifica as propriedades de navegação a serem carregadas.
Retornos
query(xpath, namespaceMappings)
Consulta o conteúdo XML da parte 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 namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
Retornos
OfficeExtension.ClientResult<string[]>
Uma matriz em que cada item representa uma entrada correspondente à consulta XPath.
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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 parte XML personalizada.
setXml(xml: string): void;
Parâmetros
- xml
-
string
Obrigatório. Conteúdo XML a ser definido.
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 = context.document.settings;
const xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartIdNS").load("value");
await context.sync();
if (xmlPartIDSetting.value) {
const 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:");
console.log(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:");
console.log(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 é passado para JSON.stringify()
. (JSON.stringify
por sua vez, chama o toJSON
método do objeto que é passado para ele.) Enquanto o Word original. O objeto CustomXmlPart é um objeto API, o toJSON
método retorna um objeto JavaScript simples (digitado como Word.Interfaces.CustomXmlPartData
) que contém cópias rasas de quaisquer propriedades filho 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. Essa chamada é uma abreviação para context.trackedObjects.add(thisObject). Se você estiver usando esse 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, você precisará adicionar o objeto à coleção de objetos rastreados quando o objeto foi criado pela primeira vez. Se esse objeto fizer parte de uma coleção, você também deverá acompanhar a coleção pai.
track(): Word.CustomXmlPart;
Retornos
untrack()
Libere a memória associada a este objeto, se ele já tiver sido rastreado anteriormente. Essa 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. Você precisará chamar context.sync()
antes que a versão da memória entre em vigor.
untrack(): Word.CustomXmlPart;
Retornos
updateAttribute(xpath, namespaceMappings, name, value)
Atualizações o valor de um atributo com o nome determinado 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 namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
- 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 qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" no parâmetro namespaceMappings.
updateElement(xpath, xml, namespaceMappings)
Atualizações XML do elemento identificado por 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 ser armazenado.
- namespaceMappings
-
{ [key: string]: string; }
Obrigatório. Um objeto cujos valores de propriedade são nomes de namespace e cujos nomes de propriedade são aliases para os namespaces correspondentes. Por exemplo, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}
. Os nomes de propriedade (como "greg") podem ser qualquer cadeia de caracteres que não use caracteres XPath reservados, como a barra de encaminhamento "/".
Retornos
void
Comentários
[ Conjunto de API: WordApi 1.4 ]
Se qualquer elemento na árvore tiver um atributo xmlns (cujo valor é normalmente, mas nem sempre, um URI), um alias para esse valor de atributo deve prefixar o nome do elemento no parâmetro xpath. Por exemplo, suponha que a árvore seja a seguinte:
<Day>
<Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
<Week>something</Week>
</Month>
</Day>
O xpath a <Week>
deve ser /Day/greg:Month/Week, em que greg é um alias que é mapeado para "http://calendartypes.org/xsds/GregorianCalendar" no parâmetro namespaceMappings.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de