CustomXmlPropertyCollection Class

Represents a collection of custom XML attributes or smart tag properties.
Inheritance Hierarchy
SystemObject
  Aspose.Words.MarkupCustomXmlPropertyCollection

Namespace:  Aspose.Words.Markup
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 20.3
Syntax
public class CustomXmlPropertyCollection : IEnumerable<CustomXmlProperty>, 
	IEnumerable

The CustomXmlPropertyCollection type exposes the following members.

Properties
Methods
  NameDescription
Public methodCode exampleAdd
Adds a property to the collection.
Public methodCode exampleClear
Removes all elements from the collection.
Public methodCode exampleContains
Determines whether the collection contains a property with the given name.
Public methodEquals (Inherited from Object.)
Public methodCode exampleGetEnumerator
Returns an enumerator object that can be used to iterate over all items in the collection.
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Public methodCode exampleIndexOfKey
Returns the zero-based index of the specified property in the collection.
Public methodCode exampleRemove
Removes a property with the specified name from the collection.
Public methodCode exampleRemoveAt
Removes a property at the specified index.
Public methodToString (Inherited from Object.)
Remarks

Items are CustomXmlProperty objects.

Examples
Shows how to work with smart tag properties to get in depth information about smart tags.
// Open a document that contains smart tags and their collection
Document doc = new Document(MyDir + "Smart tags.doc");

// Smart tags are an older Microsoft Word feature that can automatically detect and tag
// any parts of the text that it registers as commonly used information objects such as names, addresses, stock tickers, dates etc
// In Word 2003, smart tags can be turned on in Tools > AutoCorrect options... > SmartTags tab
// In our input document there are three objects that were registered as smart tags, but since they can be nested, we have 8 in this collection
NodeCollection smartTags = doc.GetChildNodes(NodeType.SmartTag, true);
Assert.AreEqual(8, smartTags.Count);

// The last smart tag is of the "Date" type, which we will retrieve here
SmartTag smartTag = (SmartTag)smartTags[7];

// The Properties attribute, for some smart tags, elaborates on the text object that Word picked up as a smart tag
// In the case of our "Date" smart tag, its properties will let us know the year, month and day within the smart tag
CustomXmlPropertyCollection properties = smartTag.Properties;

// We can enumerate over the collection and print the aforementioned properties to the console
Assert.AreEqual(4, properties.Count);

using (IEnumerator<CustomXmlProperty> enumerator = properties.GetEnumerator())
{
    while (enumerator.MoveNext())
    {
        Console.WriteLine($"Property name: {enumerator.Current.Name}, value: {enumerator.Current.Value}");
        Assert.AreEqual("", enumerator.Current.Uri);
    }
}

// We can also access the elements in various ways, including as a key-value pair
Assert.True(properties.Contains("Day"));
Assert.AreEqual("22", properties["Day"].Value);
Assert.AreEqual("2003", properties[2].Value);
Assert.AreEqual(1, properties.IndexOfKey("Month"));

// We can also remove elements by name, index or clear the collection entirely
properties.RemoveAt(3);
properties.Remove("Year");
Assert.AreEqual(2, (properties.Count));

properties.Clear();
Assert.AreEqual(0, (properties.Count));

// We can remove the entire smart tag like this
smartTag.Remove();
See Also