java.lang.Objectcom.aspose.words.CustomXmlProperty
public class CustomXmlProperty
Used as an item of a Example:
public void smartTags() throws Exception {
Document doc = new Document();
SmartTag smartTag = new SmartTag(doc);
smartTag.setElement("date");
// Specify a date and set smart tag properties accordingly
smartTag.appendChild(new Run(doc, "May 29, 2019"));
smartTag.getProperties().add(new CustomXmlProperty("Day", "", "29"));
smartTag.getProperties().add(new CustomXmlProperty("Month", "", "5"));
smartTag.getProperties().add(new CustomXmlProperty("Year", "", "2019"));
// Set the smart tag's uri to the default
smartTag.setUri("urn:schemas-microsoft-com:office:smarttags");
doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag);
doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a date. "));
// Create and add one more smart tag, this time for a financial symbol
smartTag = new SmartTag(doc);
smartTag.setElement("stockticker");
smartTag.setUri("urn:schemas-microsoft-com:office:smarttags");
smartTag.appendChild(new Run(doc, "MSFT"));
doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag);
doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a stock ticker."));
// Print all the smart tags in our document with a document visitor
doc.accept(new SmartTagVisitor());
doc.save(getArtifactsDir() + "StructuredDocumentTag.SmartTags.docx");
}
/// <summary>
/// DocumentVisitor implementation that prints smart tags and their contents.
/// </summary>
private static class SmartTagVisitor extends DocumentVisitor {
/// <summary>
/// Called when a SmartTag node is encountered in the document.
/// </summary>
public int visitSmartTagStart(SmartTag smartTag) {
System.out.println(MessageFormat.format("Smart tag type: {0}", smartTag.getElement()));
return VisitorAction.CONTINUE;
}
/// <summary>
/// Called when the visiting of a SmartTag node is ended.
/// </summary>
public int visitSmartTagEnd(SmartTag smartTag) throws Exception {
System.out.println(MessageFormat.format("\tContents: \"{0}\"", smartTag.toString(SaveFormat.TEXT)));
if (smartTag.getProperties().getCount() == 0) {
System.out.println("\tContains no properties");
} else {
System.out.println("\tProperties: ");
String[] properties = new String[smartTag.getProperties().getCount()];
int index = 0;
for (CustomXmlProperty cxp : smartTag.getProperties()) {
properties[index++] = MessageFormat.format("\"{0}\" = \"{1}\"", cxp.getName(), cxp.getValue());
}
System.out.println(String.join(", ", properties));
}
return VisitorAction.CONTINUE;
}
}
Constructor Summary |
---|
CustomXmlProperty(java.lang.String name, java.lang.String uri, java.lang.String value)
Initializes a new instance of this class. |
Property Getters/Setters Summary | ||
---|---|---|
java.lang.String | getName() | |
Specifies the name of the custom XML attribute or smart tag property. | ||
java.lang.String | getUri() | |
void | setUri(java.lang.String value) | |
Gets or sets the namespace URI of the custom XML attribute or smart tag property. | ||
java.lang.String | getValue() | |
void | setValue(java.lang.String value) | |
Gets or sets the value of the custom XML attribute or smart tag property. |
Constructor Detail |
---|
public CustomXmlProperty(java.lang.String name, java.lang.String uri, java.lang.String value)
name
- The name of the property. Cannot be null.uri
- The namespace URI of the property. Cannot be null.value
- The value of the property. Cannot be null.Example:
Shows how to create smart tags.public void smartTags() throws Exception { Document doc = new Document(); SmartTag smartTag = new SmartTag(doc); smartTag.setElement("date"); // Specify a date and set smart tag properties accordingly smartTag.appendChild(new Run(doc, "May 29, 2019")); smartTag.getProperties().add(new CustomXmlProperty("Day", "", "29")); smartTag.getProperties().add(new CustomXmlProperty("Month", "", "5")); smartTag.getProperties().add(new CustomXmlProperty("Year", "", "2019")); // Set the smart tag's uri to the default smartTag.setUri("urn:schemas-microsoft-com:office:smarttags"); doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag); doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a date. ")); // Create and add one more smart tag, this time for a financial symbol smartTag = new SmartTag(doc); smartTag.setElement("stockticker"); smartTag.setUri("urn:schemas-microsoft-com:office:smarttags"); smartTag.appendChild(new Run(doc, "MSFT")); doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag); doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a stock ticker.")); // Print all the smart tags in our document with a document visitor doc.accept(new SmartTagVisitor()); doc.save(getArtifactsDir() + "StructuredDocumentTag.SmartTags.docx"); } /// <summary> /// DocumentVisitor implementation that prints smart tags and their contents. /// </summary> private static class SmartTagVisitor extends DocumentVisitor { /// <summary> /// Called when a SmartTag node is encountered in the document. /// </summary> public int visitSmartTagStart(SmartTag smartTag) { System.out.println(MessageFormat.format("Smart tag type: {0}", smartTag.getElement())); return VisitorAction.CONTINUE; } /// <summary> /// Called when the visiting of a SmartTag node is ended. /// </summary> public int visitSmartTagEnd(SmartTag smartTag) throws Exception { System.out.println(MessageFormat.format("\tContents: \"{0}\"", smartTag.toString(SaveFormat.TEXT))); if (smartTag.getProperties().getCount() == 0) { System.out.println("\tContains no properties"); } else { System.out.println("\tProperties: "); String[] properties = new String[smartTag.getProperties().getCount()]; int index = 0; for (CustomXmlProperty cxp : smartTag.getProperties()) { properties[index++] = MessageFormat.format("\"{0}\" = \"{1}\"", cxp.getName(), cxp.getValue()); } System.out.println(String.join(", ", properties)); } return VisitorAction.CONTINUE; } }
Property Getters/Setters Detail |
---|
getName | |
public java.lang.String getName() |
Cannot be null.
Default is empty string.
Example:
Shows how to create smart tags.public void smartTags() throws Exception { Document doc = new Document(); SmartTag smartTag = new SmartTag(doc); smartTag.setElement("date"); // Specify a date and set smart tag properties accordingly smartTag.appendChild(new Run(doc, "May 29, 2019")); smartTag.getProperties().add(new CustomXmlProperty("Day", "", "29")); smartTag.getProperties().add(new CustomXmlProperty("Month", "", "5")); smartTag.getProperties().add(new CustomXmlProperty("Year", "", "2019")); // Set the smart tag's uri to the default smartTag.setUri("urn:schemas-microsoft-com:office:smarttags"); doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag); doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a date. ")); // Create and add one more smart tag, this time for a financial symbol smartTag = new SmartTag(doc); smartTag.setElement("stockticker"); smartTag.setUri("urn:schemas-microsoft-com:office:smarttags"); smartTag.appendChild(new Run(doc, "MSFT")); doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag); doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a stock ticker.")); // Print all the smart tags in our document with a document visitor doc.accept(new SmartTagVisitor()); doc.save(getArtifactsDir() + "StructuredDocumentTag.SmartTags.docx"); } /// <summary> /// DocumentVisitor implementation that prints smart tags and their contents. /// </summary> private static class SmartTagVisitor extends DocumentVisitor { /// <summary> /// Called when a SmartTag node is encountered in the document. /// </summary> public int visitSmartTagStart(SmartTag smartTag) { System.out.println(MessageFormat.format("Smart tag type: {0}", smartTag.getElement())); return VisitorAction.CONTINUE; } /// <summary> /// Called when the visiting of a SmartTag node is ended. /// </summary> public int visitSmartTagEnd(SmartTag smartTag) throws Exception { System.out.println(MessageFormat.format("\tContents: \"{0}\"", smartTag.toString(SaveFormat.TEXT))); if (smartTag.getProperties().getCount() == 0) { System.out.println("\tContains no properties"); } else { System.out.println("\tProperties: "); String[] properties = new String[smartTag.getProperties().getCount()]; int index = 0; for (CustomXmlProperty cxp : smartTag.getProperties()) { properties[index++] = MessageFormat.format("\"{0}\" = \"{1}\"", cxp.getName(), cxp.getValue()); } System.out.println(String.join(", ", properties)); } return VisitorAction.CONTINUE; } }
getUri/setUri | |
public java.lang.String getUri() / public void setUri(java.lang.String value) |
Cannot be null.
Default is empty string.
Example:
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(getMyDir() + "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.SMART_TAG, true); Assert.assertEquals(smartTags.getCount(), 8); // The last smart tag is of the "Date" type, which we will retrieve here SmartTag smartTag = (SmartTag) smartTags.get(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.getProperties(); // We can enumerate over the collection and print the aforementioned properties to the console Assert.assertEquals(properties.getCount(), 4); Iterator<CustomXmlProperty> enumerator = properties.iterator(); try { while (enumerator.hasNext()) { CustomXmlProperty customXmlProperty = enumerator.next(); System.out.println(MessageFormat.format("Property name: {0}, value: {1}", customXmlProperty.getName(), customXmlProperty.getValue())); Assert.assertEquals(enumerator.next().getUri(), ""); } } finally { if (enumerator != null) enumerator.remove(); } // We can also access the elements in various ways, including as a key-value pair Assert.assertTrue(properties.contains("Day")); Assert.assertEquals(properties.get("Day").getValue(), "22"); Assert.assertEquals(properties.get(2).getValue(), "2003"); Assert.assertEquals(properties.indexOfKey("Month"), 1); // We can also remove elements by name, index or clear the collection entirely properties.removeAt(3); properties.remove("Year"); Assert.assertEquals((properties.getCount()), 2); properties.clear(); Assert.assertEquals((properties.getCount()), 0); // We can remove the entire smart tag like this smartTag.remove();
getValue/setValue | |
public java.lang.String getValue() / public void setValue(java.lang.String value) |
Cannot be null.
Default is empty string.
Example:
Shows how to create smart tags.public void smartTags() throws Exception { Document doc = new Document(); SmartTag smartTag = new SmartTag(doc); smartTag.setElement("date"); // Specify a date and set smart tag properties accordingly smartTag.appendChild(new Run(doc, "May 29, 2019")); smartTag.getProperties().add(new CustomXmlProperty("Day", "", "29")); smartTag.getProperties().add(new CustomXmlProperty("Month", "", "5")); smartTag.getProperties().add(new CustomXmlProperty("Year", "", "2019")); // Set the smart tag's uri to the default smartTag.setUri("urn:schemas-microsoft-com:office:smarttags"); doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag); doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a date. ")); // Create and add one more smart tag, this time for a financial symbol smartTag = new SmartTag(doc); smartTag.setElement("stockticker"); smartTag.setUri("urn:schemas-microsoft-com:office:smarttags"); smartTag.appendChild(new Run(doc, "MSFT")); doc.getFirstSection().getBody().getFirstParagraph().appendChild(smartTag); doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, " is a stock ticker.")); // Print all the smart tags in our document with a document visitor doc.accept(new SmartTagVisitor()); doc.save(getArtifactsDir() + "StructuredDocumentTag.SmartTags.docx"); } /// <summary> /// DocumentVisitor implementation that prints smart tags and their contents. /// </summary> private static class SmartTagVisitor extends DocumentVisitor { /// <summary> /// Called when a SmartTag node is encountered in the document. /// </summary> public int visitSmartTagStart(SmartTag smartTag) { System.out.println(MessageFormat.format("Smart tag type: {0}", smartTag.getElement())); return VisitorAction.CONTINUE; } /// <summary> /// Called when the visiting of a SmartTag node is ended. /// </summary> public int visitSmartTagEnd(SmartTag smartTag) throws Exception { System.out.println(MessageFormat.format("\tContents: \"{0}\"", smartTag.toString(SaveFormat.TEXT))); if (smartTag.getProperties().getCount() == 0) { System.out.println("\tContains no properties"); } else { System.out.println("\tProperties: "); String[] properties = new String[smartTag.getProperties().getCount()]; int index = 0; for (CustomXmlProperty cxp : smartTag.getProperties()) { properties[index++] = MessageFormat.format("\"{0}\" = \"{1}\"", cxp.getName(), cxp.getValue()); } System.out.println(String.join(", ", properties)); } return VisitorAction.CONTINUE; } }