Partager via


Word.CustomXmlPart class

Représente un composant XML personnalisé.

Extends

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

Propriétés

builtIn

Obtient une valeur qui indique si est CustomXmlPart intégré.

context

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

documentElement

Obtient l’élément racine d’une région liée de données dans le document. Si la région est vide, la propriété retourne Nothing.

errors

Obtient un CustomXmlValidationErrorCollection objet qui fournit l’accès à toutes les erreurs de validation XML.

id

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

namespaceManager

Obtient l’ensemble des mappages de préfixes d’espace de noms utilisés par rapport à l’objet actuel CustomXmlPart .

namespaceUri

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

schemaCollection

Spécifie un CustomXmlSchemaCollection objet représentant l’ensemble de schémas attachés à une région liée de données dans le document.

xml

Obtient la représentation XML de l’objet actuel CustomXmlPart .

Méthodes

addNode(parent, options)

Ajoute un nœud à l'arborescence XML.

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.

loadXml(xml)

Remplit l’objet CustomXmlPart à partir d’une chaîne XML.

query(xpath, namespaceMappings)

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

selectNodes(xPath)

Sélectionne une collection de nœuds à partir d’une partie XML personnalisée.

selectSingleNode(xPath)

Cette méthode sélectionne un seul nœud dans une partie XML personnalisée correspondant à une expression XPath.

set(properties, options)

Définit plusieurs propriétés d’un objet en même temps. Vous pouvez passer un objet brut avec les propriétés appropriées ou un autre objet API du même type.

set(properties)

Définit plusieurs propriétés sur l’objet en même temps, en fonction d’un objet chargé existant.

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.stringify, à son tour, appelle la toJSON méthode de l’objet qui lui est passé.) Alors que l’objet d’origine Word.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 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é

builtIn

Obtient une valeur qui indique si est CustomXmlPart intégré.

readonly builtIn: boolean;

Valeur de propriété

boolean

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

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é

documentElement

Obtient l’élément racine d’une région liée de données dans le document. Si la région est vide, la propriété retourne Nothing.

readonly documentElement: Word.CustomXmlNode;

Valeur de propriété

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

errors

Notes

Cet API est fourni en tant qu’aperçu pour les développeurs et peut être modifié en fonction des commentaires que nous avons reçus. N’utilisez pas cet API dans un environnement de production.

Obtient un CustomXmlValidationErrorCollection objet qui fournit l’accès à toutes les erreurs de validation XML.

readonly errors: Word.CustomXmlValidationErrorCollection;

Valeur de propriété

Remarques

[ Ensemble d’API : WordApi BETA (PRÉVERSION UNIQUEMENT) ]

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: 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

Obtient l’ensemble des mappages de préfixes d’espace de noms utilisés par rapport à l’objet actuel CustomXmlPart .

readonly namespaceManager: Word.CustomXmlPrefixMappingCollection;

Valeur de propriété

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

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: 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

Spécifie un CustomXmlSchemaCollection objet représentant l’ensemble de schémas attachés à une région liée de données dans le document.

schemaCollection: Word.CustomXmlSchemaCollection;

Valeur de propriété

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

xml

Obtient la représentation XML de l’objet actuel CustomXmlPart .

readonly xml: string;

Valeur de propriété

string

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

Détails de la méthode

addNode(parent, options)

Ajoute un nœud à l'arborescence XML.

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

Paramètres

parent
Word.CustomXmlNode

Nœud parent auquel le nouveau nœud sera ajouté.

options
Word.CustomXmlAddNodeOptions

Facultatif. Options qui définissent le nœud à ajouter.

Retours

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

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

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

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

namespaceMappings

{ [key: string]: string; }

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

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

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

namespaceMappings

{ [key: string]: string; }

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

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

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

namespaceMappings

{ [key: string]: string; }

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

Nom de l’attribut.

value

string

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

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

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

xml

string

Contenu XML à insérer.

namespaceMappings

{ [key: string]: string; }

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

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

loadXml(xml)

Remplit l’objet CustomXmlPart à partir d’une chaîne XML.

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

Paramètres

xml

string

Chaîne XML à charger.

Retours

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

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

Requête XPath.

namespaceMappings

{ [key: string]: string; }

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

Sélectionne une collection de nœuds à partir d’une partie XML personnalisée.

selectNodes(xPath: string): Word.CustomXmlNodeCollection;

Paramètres

xPath

string

Expression XPath à évaluer.

Retours

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

selectSingleNode(xPath)

Cette méthode sélectionne un seul nœud dans une partie XML personnalisée correspondant à une expression XPath.

selectSingleNode(xPath: string): Word.CustomXmlNode;

Paramètres

xPath

string

Expression XPath à évaluer.

Retours

Remarques

[ Ensemble d’API : WordApiDesktop 1.3 ]

set(properties, options)

Définit plusieurs propriétés d’un objet en même temps. Vous pouvez passer un objet brut avec les propriétés appropriées ou un autre objet API du même type.

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

Paramètres

properties
Word.Interfaces.CustomXmlPartUpdateData

Objet JavaScript avec des propriétés qui sont structurées isomorphes en fonction des propriétés de l’objet sur lequel la méthode est appelée.

options
OfficeExtension.UpdateOptions

Fournit une option permettant de supprimer les erreurs si l’objet properties tente de définir des propriétés en lecture seule.

Retours

void

set(properties)

Définit plusieurs propriétés sur l’objet en même temps, en fonction d’un objet chargé existant.

set(properties: Word.CustomXmlPart): void;

Paramètres

properties
Word.CustomXmlPart

Retours

void

setXml(xml)

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

setXml(xml: string): void;

Paramètres

xml

string

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

Remplace la méthode JavaScript toJSON() afin de fournir une sortie plus utile lorsqu’un objet API est passé à JSON.stringify(). (JSON.stringify, à son tour, appelle la toJSON méthode de l’objet qui lui est passé.) Alors que l’objet d’origine Word.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 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

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

namespaceMappings

{ [key: string]: string; }

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

Nom de l’attribut.

value

string

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

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

xml

string

Nouveau contenu XML à stocker.

namespaceMappings

{ [key: string]: string; }

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.