Compartilhar via


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

builtIn

Obtém um valor que indica se está CustomXmlPart incorporado.

context

O contexto do pedido associado ao objeto . Esta ação liga o processo do suplemento ao processo da aplicação anfitriã do Office.

documentElement

Obtém o elemento raiz de uma região vinculada de dados no documento. Se a região estiver vazia, a propriedade devolve Nothing.

errors

Obtém um CustomXmlValidationErrorCollection objeto que fornece acesso a quaisquer erros de validação XML.

id

Obtém o ID da peça XML personalizada.

namespaceManager

Obtém o conjunto de mapeamentos de prefixos de espaço de nomes utilizados no objeto atual CustomXmlPart .

namespaceUri

Obtém o URI do espaço de nomes da peça XML personalizada.

schemaCollection

Especifica um CustomXmlSchemaCollection objeto que representa o conjunto de esquemas anexados a uma região vinculada de dados no documento.

xml

Obtém a representação XML do objeto atual CustomXmlPart .

Métodos

addNode(parent, options)

Adiciona um nó a uma árvore XML.

delete()

Exclui a parte XML personalizada.

deleteAttribute(xpath, namespaceMappings, name)

Elimina um atributo com o nome especificado do elemento identificado pelo xpath.

deleteElement(xpath, namespaceMappings)

Elimina o elemento identificado pelo xpath.

getXml()

Obtém o conteúdo XML completo da peça XML personalizada.

insertAttribute(xpath, namespaceMappings, name, value)

Insere um atributo com o nome e o valor indicados no elemento identificado pelo xpath.

insertElement(xpath, xml, namespaceMappings, index)

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 context.sync() antes de ler as propriedades.

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(propertyNamesAndPaths)

Coloca um comando na fila para carregar as propriedades especificadas do objeto. Você deve chamar context.sync() antes de ler as propriedades.

loadXml(xml)

Preenche o objeto a CustomXmlPart partir de uma cadeia XML.

query(xpath, namespaceMappings)

Consulta o conteúdo XML da peça XML personalizada.

selectNodes(xPath)

Seleciona uma coleção de nós de uma parte XML personalizada.

selectSingleNode(xPath)

Seleciona um único nó em uma parte XML personalizada correspondente a uma expressão XPath.

set(properties, options)

Define várias propriedades de um objeto ao mesmo tempo. Pode transmitir um objeto simples com as propriedades adequadas ou outro objeto de API do mesmo tipo.

set(properties)

Define várias propriedades no objeto ao mesmo tempo, com base num objeto carregado existente.

setXml(xml)

Define o conteúdo XML completo da peça XML personalizada.

toJSON()

Substitui o método JavaScript toJSON() para fornecer uma saída mais útil quando um objeto de API é transmitido para JSON.stringify(). (JSON.stringifypor 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.

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.

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.

updateAttribute(xpath, namespaceMappings, name, value)

Atualizações o valor de um atributo com o nome especificado do elemento identificado pelo xpath.

updateElement(xpath, xml, namespaceMappings)

Atualizações o XML do elemento identificado pelo xpath.

Detalhes da propriedade

builtIn

Obtém um valor que indica se está CustomXmlPart incorporado.

readonly builtIn: boolean;

Valor da propriedade

boolean

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

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

documentElement

Obtém o elemento raiz de uma região vinculada de dados no documento. Se a região estiver vazia, a propriedade devolve Nothing.

readonly documentElement: Word.CustomXmlNode;

Valor da propriedade

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

errors

Observação

Esta API é fornecida como uma versão prévia para desenvolvedores e pode ser alterada com base nos comentários que recebemos. Não use esta API em um ambiente de produção.

Obtém um CustomXmlValidationErrorCollection objeto que fornece acesso a quaisquer erros de validação XML.

readonly errors: Word.CustomXmlValidationErrorCollection;

Valor da propriedade

Comentários

[ Conjunto de API: WordApi BETA (APENAS PRÉ-VISUALIZAÇÃO) ]

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();
});

namespaceManager

Obtém o conjunto de mapeamentos de prefixos de espaço de nomes utilizados no objeto atual CustomXmlPart .

readonly namespaceManager: Word.CustomXmlPrefixMappingCollection;

Valor da propriedade

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

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.");
  }
});

schemaCollection

Especifica um CustomXmlSchemaCollection objeto que representa o conjunto de esquemas anexados a uma região vinculada de dados no documento.

schemaCollection: Word.CustomXmlSchemaCollection;

Valor da propriedade

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

xml

Obtém a representação XML do objeto atual CustomXmlPart .

readonly xml: string;

Valor da propriedade

string

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

Detalhes do método

addNode(parent, options)

Adiciona um nó a uma árvore XML.

addNode(parent: Word.CustomXmlNode, options?: Word.CustomXmlAddNodeOptions): OfficeExtension.ClientResult<number>;

Parâmetros

parent
Word.CustomXmlNode

O nó principal ao qual o novo nó será adicionado.

options
Word.CustomXmlAddNodeOptions

Opcional. As opções que definem o nó a adicionar.

Retornos

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

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

Caminho absoluto para o elemento único na notação XPath.

namespaceMappings

{ [key: string]: string; }

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

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

Caminho absoluto para o elemento único na notação XPath.

namespaceMappings

{ [key: string]: string; }

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

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

Caminho absoluto para o elemento único na notação XPath.

namespaceMappings

{ [key: string]: string; }

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

Nome do atributo.

value

string

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

Caminho absoluto para o elemento principal único na notação XPath.

xml

string

Conteúdo XML a inserir.

namespaceMappings

{ [key: string]: string; }

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

options
Word.Interfaces.CustomXmlPartLoadOptions

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

loadXml(xml)

Preenche o objeto a CustomXmlPart partir de uma cadeia XML.

loadXml(xml: string): OfficeExtension.ClientResult<boolean>;

Parâmetros

xml

string

A cadeia XML a carregar.

Retornos

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

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

Uma consulta XPath.

namespaceMappings

{ [key: string]: string; }

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

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.");
  }
});

selectNodes(xPath)

Seleciona uma coleção de nós de uma parte XML personalizada.

selectNodes(xPath: string): Word.CustomXmlNodeCollection;

Parâmetros

xPath

string

A expressão XPath a avaliar.

Retornos

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

selectSingleNode(xPath)

Seleciona um único nó em uma parte XML personalizada correspondente a uma expressão XPath.

selectSingleNode(xPath: string): Word.CustomXmlNode;

Parâmetros

xPath

string

A expressão XPath a avaliar.

Retornos

Comentários

[ Conjunto de API: WordApiDesktop 1.3 ]

set(properties, options)

Define várias propriedades de um objeto ao mesmo tempo. Pode transmitir um objeto simples com as propriedades adequadas ou outro objeto de API do mesmo tipo.

set(properties: Interfaces.CustomXmlPartUpdateData, options?: OfficeExtension.UpdateOptions): void;

Parâmetros

properties
Word.Interfaces.CustomXmlPartUpdateData

Um objeto JavaScript com propriedades que são estruturadas isomorfoticamente para as propriedades do objeto no qual o método é chamado.

options
OfficeExtension.UpdateOptions

Fornece uma opção para suprimir erros se o objeto de propriedades tentar definir quaisquer propriedades só de leitura.

Retornos

void

set(properties)

Define várias propriedades no objeto ao mesmo tempo, com base num objeto carregado existente.

set(properties: Word.CustomXmlPart): void;

Parâmetros

properties
Word.CustomXmlPart

Retornos

void

setXml(xml)

Define o conteúdo XML completo da peça XML personalizada.

setXml(xml: string): void;

Parâmetros

xml

string

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.stringifypor 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

Caminho absoluto para o elemento único na notação XPath.

namespaceMappings

{ [key: string]: string; }

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

Nome do atributo.

value

string

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

Caminho absoluto para o elemento único na notação XPath.

xml

string

Novo conteúdo XML a armazenar.

namespaceMappings

{ [key: string]: string; }

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.