Partager via


Word.CustomXmlPart class

Représente un composant XML personnalisé.

Extends

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Propriétés

context

Contexte de requête associé à l’objet . Cela connecte le processus du complément au processus de l’application hôte Office.

id

Obtient l’ID de la partie XML personnalisée.

namespaceUri

Obtient l’URI de l’espace de noms de la partie XML personnalisée.

Méthodes

delete()

Supprime la partie XML personnalisée.

deleteAttribute(xpath, namespaceMappings, name)

Supprime un attribut portant le nom donné de l’élément identifié par xpath.

deleteElement(xpath, namespaceMappings)

Supprime l’élément identifié par xpath.

getXml()

Obtient le contenu XML complet de la partie XML personnalisée.

insertAttribute(xpath, namespaceMappings, name, value)

Insère un attribut avec le nom et la valeur donnés à l’élément identifié par xpath.

insertElement(xpath, xml, namespaceMappings, index)

Insère le code XML donné sous l’élément parent identifié par xpath à l’index de position enfant.

load(options)

Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync() avant de lire les propriétés.

load(propertyNames)

Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync() avant de lire les propriétés.

load(propertyNamesAndPaths)

Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync() avant de lire les propriétés.

query(xpath, namespaceMappings)

Interroge le contenu XML de la partie XML personnalisée.

setXml(xml)

Définit le contenu XML complet de la partie XML personnalisée.

toJSON()

Remplace la méthode JavaScript toJSON() afin de fournir une sortie plus utile lorsqu’un objet API est passé à JSON.stringify(). (JSON.stringifyappelle à son tour la toJSON méthode de l’objet qui lui est passé.) Alors que le Word d’origine. L’objet CustomXmlPart est un objet API. La toJSON méthode renvoie un objet JavaScript brut (typé en tant Word.Interfaces.CustomXmlPartDataque ) qui contient des copies superficielles de toutes les propriétés enfants chargées à partir de l’objet d’origine.

track()

Effectuer le suivi de l’objet pour l’ajustement automatique en fonction environnant des modifications dans le document. Cet appel est un raccourci pour context.trackedObjects.add(thisObject). Si vous utilisez cet objet sur des .sync appels et en dehors de l’exécution séquentielle d’un lot « .run », et que vous obtenez une erreur « InvalidObjectPath » lors de la définition d’une propriété ou de l’appel d’une méthode sur l’objet, vous devez ajouter l’objet à la collection d’objets suivie lors de la première création de l’objet. Si cet objet fait partie d’une collection, vous devez également suivre la collection parente.

untrack()

Publication mémoire associée à cet objet si elle a été précédemment suivie. Cet appel est abrégé pour context.trackedObjects.remove(thisObject). Vous rencontrez de nombreux objets suivies ralentit l’application hôte, donc n’oubliez pas de libérer les objets que l'on ajoute, une fois que vous avez terminé à les utiliser. Vous devez appeler context.sync() avant que la mise en production de la mémoire ne prenne effet.

updateAttribute(xpath, namespaceMappings, name, value)

Mises à jour la valeur d’un attribut avec le nom donné de l’élément identifié par xpath.

updateElement(xpath, xml, namespaceMappings)

Mises à jour le code XML de l’élément identifié par xpath.

Détails de la propriété

context

Contexte de requête associé à l’objet . Cela connecte le processus du complément au processus de l’application hôte Office.

context: RequestContext;

Valeur de propriété

id

Obtient l’ID de la partie XML personnalisée.

readonly id: string;

Valeur de propriété

string

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Exemples

// 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:", 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

Obtient l’URI de l’espace de noms de la partie XML personnalisée.

readonly namespaceUri: string;

Valeur de propriété

string

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Exemples

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

Détails de la méthode

delete()

Supprime la partie XML personnalisée.

delete(): void;

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Exemples

// 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);
      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 = 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);
      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)

Supprime un attribut portant le nom donné de l’élément identifié par xpath.

deleteAttribute(xpath: string, namespaceMappings: {
            [key: string]: string;
        }, name: string): void;

Paramètres

xpath

string

Obligatoire. Chemin d’accès absolu à l’élément unique en notation XPath.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

name

string

Obligatoire. Nom de l’attribut.

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.

deleteElement(xpath, namespaceMappings)

Supprime l’élément identifié par xpath.

deleteElement(xpath: string, namespaceMappings: {
            [key: string]: string;
        }): void;

Paramètres

xpath

string

Obligatoire. Chemin d’accès absolu à l’élément unique en notation XPath.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.

getXml()

Obtient le contenu XML complet de la partie XML personnalisée.

getXml(): OfficeExtension.ClientResult<string>;

Retours

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Exemples

// 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 = 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:", 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)

Insère un attribut avec le nom et la valeur donnés à l’élément identifié par xpath.

insertAttribute(xpath: string, namespaceMappings: {
            [key: string]: string;
        }, name: string, value: string): void;

Paramètres

xpath

string

Obligatoire. Chemin d’accès absolu à l’élément unique en notation XPath.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

name

string

Obligatoire. Nom de l’attribut.

value

string

Obligatoire. Valeur de l’attribut.

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.

Exemples

// 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:", 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:", readableXml);
  } else {
    console.warn("Didn't find custom XML part to insert attribute into.");
  }
});

insertElement(xpath, xml, namespaceMappings, index)

Insère le code XML donné sous l’élément parent identifié par xpath à l’index de position enfant.

insertElement(xpath: string, xml: string, namespaceMappings: {
            [key: string]: string;
        }, index?: number): void;

Paramètres

xpath

string

Obligatoire. Chemin absolu de l’élément parent unique en notation XPath.

xml

string

Obligatoire. Contenu XML à insérer.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

index

number

Facultatif. Position de base zéro à laquelle le nouveau code XML doit être inséré. En cas d’omission, le code XML est ajouté en tant que dernier enfant de ce parent.

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.

Exemples

// 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:", 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:", readableXml);
  } else {
    console.warn("Didn't find custom XML part to insert element into.");
  }
});

load(options)

Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync() avant de lire les propriétés.

load(options?: Word.Interfaces.CustomXmlPartLoadOptions): Word.CustomXmlPart;

Paramètres

options
Word.Interfaces.CustomXmlPartLoadOptions

Fournit des options pour les propriétés de l’objet à charger.

Retours

load(propertyNames)

Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync() avant de lire les propriétés.

load(propertyNames?: string | string[]): Word.CustomXmlPart;

Paramètres

propertyNames

string | string[]

Chaîne délimitée par des virgules ou tableau de chaînes qui spécifient les propriétés à charger.

Retours

load(propertyNamesAndPaths)

Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync() avant de lire les propriétés.

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Word.CustomXmlPart;

Paramètres

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select est une chaîne délimitée par des virgules qui spécifie les propriétés à charger, et propertyNamesAndPaths.expand est une chaîne délimitée par des virgules qui spécifie les propriétés de navigation à charger.

Retours

query(xpath, namespaceMappings)

Interroge le contenu XML de la partie XML personnalisée.

query(xpath: string, namespaceMappings: {
            [key: string]: string;
        }): OfficeExtension.ClientResult<string[]>;

Paramètres

xpath

string

Obligatoire. Requête XPath.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

Retours

Tableau dans lequel chaque élément représente une entrée correspondant à la requête XPath.

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.

Exemples

// 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)

Définit le contenu XML complet de la partie XML personnalisée.

setXml(xml: string): void;

Paramètres

xml

string

Obligatoire. Contenu XML à définir.

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Exemples

// 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:", 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()

Remplace la méthode JavaScript toJSON() afin de fournir une sortie plus utile lorsqu’un objet API est passé à JSON.stringify(). (JSON.stringifyappelle à son tour la toJSON méthode de l’objet qui lui est passé.) Alors que le Word d’origine. L’objet CustomXmlPart est un objet API. La toJSON méthode renvoie un objet JavaScript brut (typé en tant Word.Interfaces.CustomXmlPartDataque ) qui contient des copies superficielles de toutes les propriétés enfants chargées à partir de l’objet d’origine.

toJSON(): Word.Interfaces.CustomXmlPartData;

Retours

track()

Effectuer le suivi de l’objet pour l’ajustement automatique en fonction environnant des modifications dans le document. Cet appel est un raccourci pour context.trackedObjects.add(thisObject). Si vous utilisez cet objet sur des .sync appels et en dehors de l’exécution séquentielle d’un lot « .run », et que vous obtenez une erreur « InvalidObjectPath » lors de la définition d’une propriété ou de l’appel d’une méthode sur l’objet, vous devez ajouter l’objet à la collection d’objets suivie lors de la première création de l’objet. Si cet objet fait partie d’une collection, vous devez également suivre la collection parente.

track(): Word.CustomXmlPart;

Retours

untrack()

Publication mémoire associée à cet objet si elle a été précédemment suivie. Cet appel est abrégé pour context.trackedObjects.remove(thisObject). Vous rencontrez de nombreux objets suivies ralentit l’application hôte, donc n’oubliez pas de libérer les objets que l'on ajoute, une fois que vous avez terminé à les utiliser. Vous devez appeler context.sync() avant que la mise en production de la mémoire ne prenne effet.

untrack(): Word.CustomXmlPart;

Retours

updateAttribute(xpath, namespaceMappings, name, value)

Mises à jour la valeur d’un attribut avec le nom donné de l’élément identifié par xpath.

updateAttribute(xpath: string, namespaceMappings: {
            [key: string]: string;
        }, name: string, value: string): void;

Paramètres

xpath

string

Obligatoire. Chemin d’accès absolu à l’élément unique en notation XPath.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

name

string

Obligatoire. Nom de l’attribut.

value

string

Obligatoire. Nouvelle valeur de l’attribut.

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.

updateElement(xpath, xml, namespaceMappings)

Mises à jour le code XML de l’élément identifié par xpath.

updateElement(xpath: string, xml: string, namespaceMappings: {
            [key: string]: string;
        }): void;

Paramètres

xpath

string

Obligatoire. Chemin d’accès absolu à l’élément unique en notation XPath.

xml

string

Obligatoire. Nouveau contenu XML à stocker.

namespaceMappings

{ [key: string]: string; }

Obligatoire. Objet dont les valeurs de propriété sont des noms d’espaces de noms et dont les noms de propriété sont des alias pour les espaces de noms correspondants. Par exemple, {greg: "http://calendartypes.org/xsds/GregorianCalendar"}. Les noms de propriété (par exemple, « greg ») peuvent être n’importe quelle chaîne qui n’utilise pas de caractères XPath réservés, comme la barre oblique « / ».

Retours

void

Remarques

[ Ensemble d’API : WordApi 1.4 ]

Si un élément de l’arborescence a un attribut xmlns (dont la valeur est généralement, mais pas toujours, un URI), un alias pour cette valeur d’attribut doit préfixer le nom de l’élément dans le paramètre xpath. Par exemple, supposons que l’arborescence soit la suivante :

<Day>
  <Month xmlns="http://calendartypes.org/xsds/GregorianCalendar">
    <Week>something</Week>
  </Month>
</Day>

Le xpath à <Week> doit être /Day/greg :Month/Week, où greg est un alias mappé à « http ://calendartypes.org/xsds/GregorianCalendar » dans le paramètre namespaceMappings.