Clase XMLNode (Word VBA)

La clase XMLNode representa un único elemento XML aplicado a un documento.

Los principales procedimientos de la clase XMLNode son Copy y Delete

Set

Para usar una variable de clase XMLNode, primero debe ser instanciado, por ejemplo

Dim xml as XMLNode
Set xml = Dim strXPath As String: strXPath = 
ActiveDocument.SelectSingleNode(XPath:=strXPath)

Los siguientes procedimientos se pueden usar para establecer variables de clase XMLNode : Document.SelectSingleNode, FirstChild, LastChild, SelectSingleNode, NextSibling, ParentNode, PreviousSibling, XMLNodes.Item, Document.SelectNodes, SelectNodes, Attributes y ChildNodes

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos XMLNode en una colección.

Dim nod As XMLNode 
Dim strValid As String 
For Each nod In ActiveDocument.XMLNodes 
 nod.Validate 
 If nod.ValidationStatus <> wdXMLValidationStatusOK Then 
 strValid = strValid & nod.BaseName & vbTab & nod.ValidationErrorText & vbCrLf 
 End If 
Next 
MsgBox "The following elements do not validate against " &  "the schema." & vbCrLf & vbCrLf & strValid & vbCrLf &  "You should fix these elements before continuing."

Métodos

Los principales métodos de la clase XMLNode son

Copy - Este método copia al Portapapeles el elemento XML especificado, excluyendo el formato XML.

ActiveDocument.SelectSingleNode.Copy

Delete - Elimina el elemento XML especificado de un documento XML.

ActiveDocument.SelectSingleNode.Delete

Otros Métodos

SelectNodes - Devuelve una colección XMLNodes que representa todos los elementos secundarios que coinciden con el parámetro XPath, en el orden en que aparecen en el elemento XML especificado.

Dim strXPath As String: strXPath =  
Dim xmlsSelectNodes As XMLNodes
Set xmlsSelectNodes = ActiveDocument.SelectSingleNode.SelectNodes(XPath:=strXPath)

SelectSingleNode - Devuelve un objeto XmlNode que representa el primer elemento secundario que coincide con el parámetro XPath dentro del elemento XML especificado.

Dim strXPath As String: strXPath =  
Dim xmlSelectSingleNode As XMLNode
Set xmlSelectSingleNode = ActiveDocument.SelectSingleNode.SelectSingleNode(XPath:=strXPath)

SetValidationError - Cambia el texto de error de validación que se muestra a un usuario para un nodo específico y obliga a Word a indicar que un nodo no es válido.

ActiveDocument.SelectSingleNode.SetValidationError Status:=wdXMLValidationStatusCustom

Propiedades

Attributes Devuelve una colección XMLNodes que representa los atributos del elemento especificado.

Dim xmlsAttributes As XMLNodes
Set xmlsAttributes = ActiveDocument.SelectSingleNode.Attributes

BaseName Devuelve una cadena que representa el nombre del elemento sin ningún prefijo.

Dim strBaseName As String
strBaseName = ActiveDocument.SelectSingleNode.BaseName

ChildNodes Devuelve una colección XMLNodes que representa los elementos secundarios de un elemento especificado.

Dim xmlsChildNodes As XMLNodes
Set xmlsChildNodes = ActiveDocument.SelectSingleNode.ChildNodes

FirstChild Devuelve un objeto DiagramNode que representa el primer nodo secundario de un nodo primario.

Dim xmlFirstChild As XMLNode
Set xmlFirstChild = ActiveDocument.SelectSingleNode.FirstChild

HasChildNodes Devuelve un valor Boolean que indica si un nodo XML tiene nodos secundarios.

Dim booHasChildNodes As Boolean
booHasChildNodes = ActiveDocument.SelectSingleNode.HasChildNodes

LastChild Devuelve un objeto XmlNode que representa el último nodo secundario de un elemento XML.

Dim xmlLastChild As XMLNode
Set xmlLastChild = ActiveDocument.SelectSingleNode.LastChild

Level Devuelve una constante WdXMLNodeLevel que representa si un elemento XML forma parte de un párrafo, es un párrafo o está contenido en una celda de una tabla o contiene una fila de tabla.

Dim wxmLevel As WdXMLNodeLevel
wxmLevel = ActiveDocument.SelectSingleNode.Level

NamespaceURI Devuelve una cadena que representa el identificador uniforme de recursos (URI) del espacio de nombres del esquema para el objeto especificado.

Dim strNamespaceURI As String
strNamespaceURI = ActiveDocument.SelectSingleNode.NamespaceURI

NextSibling Devuelve un objeto XmlNode que representa el siguiente elemento en el documento que se encuentra en el mismo nivel que el elemento especificado.

Dim xmlNextSibling As XMLNode
Set xmlNextSibling = ActiveDocument.SelectSingleNode.NextSibling

NodeType Devuelve una constante WdXMLNodeType que representa el tipo de nodo.

Dim wxmNodeType As WdXMLNodeType
wxmNodeType = ActiveDocument.SelectSingleNode.NodeType

NodeValue Devuelve o establece una cadena que representa el valor de un elemento XML.

ActiveDocument.SelectSingleNode.NodeValue =

OwnerDocument Devuelve un objeto Document que representa el documento primario del elemento XML especificado.

Dim docOwnerDocument As Document
Set docOwnerDocument = ActiveDocument.SelectSingleNode.OwnerDocument

Parent Devuelve un objeto Object que representa el objeto primario del objeto XMLNode especificado.

Dim objParent As Object
Set objParent = ActiveDocument.SelectSingleNode.Parent

ParentNode Devuelve un objeto XmlNode que representa el elemento primario del elemento especificado.

Dim xmlParentNode As XMLNode
Set xmlParentNode = ActiveDocument.SelectSingleNode.ParentNode

PlaceholderText Establece o devuelve una cadena que representa el texto que se muestra para un elemento que no contiene texto.

ActiveDocument.SelectSingleNode.PlaceholderText =

PreviousSibling Devuelve un objeto XmlNode que representa el elemento anterior del documento que se encuentra en el mismo nivel que el elemento especificado.

Dim xmlPreviousSibling As XMLNode
Set xmlPreviousSibling = ActiveDocument.SelectSingleNode.PreviousSibling

Range Devuelve un objeto Range que representa la parte de un documento incluida en el objeto especificado.

Dim rngRange As Range
Set rngRange = ActiveDocument.SelectSingleNode.Range

Text Devuelve o establece el texto contenido en el elemento XML.

ActiveDocument.SelectSingleNode.Text =

ValidationErrorText Devuelve una cadena que representa la descripción de un error de validación en un objeto XmlNode .

Dim strValidationErrorText As String
strValidationErrorText = ActiveDocument.SelectSingleNode.ValidationErrorText

ValidationStatus Devuelve una constante WdXMLValidationStatus que representa si un elemento o atributo es válido de acuerdo con el esquema adjunto.

Dim wxmsValidationStatus As WdXMLValidationStatus
wxmsValidationStatus = ActiveDocument.SelectSingleNode.ValidationStatus

WordOpenXML Devuelve una cadena que representa el XML para el nodo en el formato XML abierto de Microsoft Word.

Dim strWordOpenXML As String
strWordOpenXML = ActiveDocument.SelectSingleNode.WordOpenXML

XML

Dim strXML As String
strXML = ActiveDocument.SelectSingleNode.XML

XMLNodes.Count Devuelve un Long que representa el número de elementos XML de la colección.

Dim lngCount As Long
lngCount = ActiveDocument.SelectSingleNode.Attributes.Count

XMLNodes.Parent Devuelve un objeto Object que representa el objeto primario del objeto XMLNodes especificado.

Dim objParent As Object
Set objParent = ActiveDocument.SelectSingleNode.Attributes.Parent