SmartTag class
SmartTag class
This element specifies the presence of a smart tag around one or more inline structures (runs, images, fields,etc.) within a paragraph. To learn more, visit the Structured Document Tags or Content Control documentation article.
Remarks
Smart tags is a kind of custom XML markup. Smart tags provide a facility for embedding customer-defined semantics into the document via the ability to provide a basic namespace/name for a run or set of runs within a document.
SmartTag can be a child of a Paragraph or another SmartTag node.
The complete list of child nodes that can occur inside a smart tag consists of BookmarkStart, BookmarkEnd, FieldStart, FieldSeparator, FieldEnd, FormField, Comment, Footnote, Run, SpecialChar, Shape, GroupShape, CommentRangeStart, CommentRangeEnd, SmartTag.
Inheritance: SmartTag → CompositeNode → Node
Constructors
Name | Description |
---|---|
SmartTag(doc) | Initializes a new instance of the SmartTag class. |
Properties
Name | Description |
---|---|
count | Gets the number of immediate children of this node. (Inherited from CompositeNode) |
custom_node_id | Specifies custom node identifier. (Inherited from Node) |
document | Gets the document to which this node belongs. (Inherited from Node) |
element | Specifies the name of the smart tag within the document. |
first_child | Gets the first child of the node. (Inherited from CompositeNode) |
has_child_nodes | Returns True if this node has any child nodes.(Inherited from CompositeNode) |
is_composite | Returns True if this node can contain other nodes.(Inherited from Node) |
last_child | Gets the last child of the node. (Inherited from CompositeNode) |
next_sibling | Gets the node immediately following this node. (Inherited from Node) |
node_type | Returns NodeType.SMART_TAG. |
parent_node | Gets the immediate parent of this node. (Inherited from Node) |
previous_sibling | Gets the node immediately preceding this node. (Inherited from Node) |
properties | A collection of the smart tag properties. |
range | Returns a Range object that represents the portion of a document that is contained in this node. (Inherited from Node) |
uri | Specifies the namespace URI of the smart tag. |
Methods
Name | Description |
---|---|
accept(visitor) | Accepts a visitor. |
accept_end(visitor) | Accepts a visitor for visiting the end of the SmartTag. |
accept_start(visitor) | Accepts a visitor for visiting the start of the SmartTag. |
append_child(new_child) | Adds the specified node to the end of the list of child nodes for this node. (Inherited from CompositeNode) |
clone(is_clone_children) | Creates a duplicate of the node. (Inherited from Node) |
get_ancestor(ancestor_type) | Gets the first ancestor of the specified object type. (Inherited from Node) |
get_ancestor(ancestor_type) | Gets the first ancestor of the specified NodeType. (Inherited from Node) |
get_child(node_type, index, is_deep) | Returns an Nth child node that matches the specified type. (Inherited from CompositeNode) |
get_child_nodes(node_type, is_deep) | Returns a live collection of child nodes that match the specified type. (Inherited from CompositeNode) |
get_text() | Gets the text of this node and of all its children. (Inherited from Node) |
index_of(child) | Returns the index of the specified child node in the child node array. (Inherited from CompositeNode) |
insert_after(new_child, ref_child) | Inserts the specified node immediately after the specified reference node. (Inherited from CompositeNode) |
insert_before(new_child, ref_child) | Inserts the specified node immediately before the specified reference node. (Inherited from CompositeNode) |
next_pre_order(root_node) | Gets next node according to the pre-order tree traversal algorithm. (Inherited from Node) |
node_type_to_string(node_type) | A utility method that converts a node type enum value into a user friendly string. (Inherited from Node) |
prepend_child(new_child) | Adds the specified node to the beginning of the list of child nodes for this node. (Inherited from CompositeNode) |
previous_pre_order(root_node) | Gets the previous node according to the pre-order tree traversal algorithm. (Inherited from Node) |
remove() | Removes itself from the parent. (Inherited from Node) |
remove_all_children() | Removes all the child nodes of the current node. (Inherited from CompositeNode) |
remove_child(old_child) | Removes the specified child node. (Inherited from CompositeNode) |
remove_smart_tags() | Removes all SmartTag descendant nodes of the current node. (Inherited from CompositeNode) |
select_nodes(xpath) | Selects a list of nodes matching the XPath expression. (Inherited from CompositeNode) |
select_single_node(xpath) | Selects the first Node that matches the XPath expression. (Inherited from CompositeNode) |
to_string(save_format) | Exports the content of the node into a string in the specified format. (Inherited from Node) |
to_string(save_options) | Exports the content of the node into a string using the specified save options. (Inherited from Node) |
Examples
Shows how to create smart tags.
def create():
doc = aw.Document()
# A smart tag appears in a document with Microsoft Word recognizes a part of its text as some form of data,
# such as a name, date, or address, and converts it to a hyperlink that displays a purple dotted underline.
smart_tag = aw.markup.SmartTag(doc)
# Smart tags are composite nodes that contain their recognized text in its entirety.
# Add contents to this smart tag manually.
smart_tag.append_child(aw.Run(doc, 'May 29, 2019'))
# Microsoft Word may recognize the above contents as being a date.
# Smart tags use the "Element" property to reflect the type of data they contain.
smart_tag.element = 'date'
# Some smart tag types process their contents further into custom XML properties.
smart_tag.properties.add(aw.markup.CustomXmlProperty('Day', '', '29'))
smart_tag.properties.add(aw.markup.CustomXmlProperty('Month', '', '5'))
smart_tag.properties.add(aw.markup.CustomXmlProperty('Year', '', '2019'))
# Set the smart tag's URI to the default value.
smart_tag.uri = 'urn:schemas-microsoft-com:office:smarttags'
doc.first_section.body.first_paragraph.append_child(smart_tag)
doc.first_section.body.first_paragraph.append_child(aw.Run(doc, ' is a date. '))
# Create another smart tag for a stock ticker.
smart_tag = aw.markup.SmartTag(doc)
smart_tag.element = 'stockticker'
smart_tag.uri = 'urn:schemas-microsoft-com:office:smarttags'
smart_tag.append_child(aw.Run(doc, 'MSFT'))
doc.first_section.body.first_paragraph.append_child(smart_tag)
doc.first_section.body.first_paragraph.append_child(aw.Run(doc, ' is a stock ticker.'))
# Older versions of Microsoft Word support smart tags.
doc.save(ARTIFACTS_DIR + 'SmartTag.create.doc')
# Use the "remove_smart_tags" method to remove all smart tags from a document.
self.assertEqual(2, doc.get_child_nodes(aw.NodeType.SMART_TAG, True).count)
doc.remove_smart_tags()
self.assertEqual(0, doc.get_child_nodes(aw.NodeType.SMART_TAG, True).count)
See Also
- module aspose.words.markup
- class CompositeNode