Rich Text-Attribute in einfache Textattribute konvertieren
Verwenden Sie APIs wie getLongDescription, getLongProposedSolution und getLongReason, um Rich Content wie longDescription, longProposedSolution oder longReason mit Markup-Tags abzurufen.
Verwenden Sie APIs wie getDescription, getProposedSolution und getReason, um einfache Textwerte einer Beschreibung, einer vorgeschlagenen Lösung und eines Grundes abzurufen.
Verwenden Sie den folgenden Code, um Rich Content (mit Markup-Tags) in einfachen Text zu konvertieren:
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
Rich Text-Attribute für Replikationspakete in einfache Textattribute konvertieren
Sind beim Exportieren eines Änderungsobjektpakets nach Windchill die Rich Text-Attribute wie longDescription, longProposedSolution und longReason ausgeschlossen, können Sie das Quellsystem anpassen, um die aus der Quelle exportierten Rich Text-Attribute in einfache Textattribute zu konvertieren. Die Anpassung entfernt die vorhandenen Attribute description, proposedSolution und reason und konvertiert die Attribute longDescription in description, longReason in reason und longProposedSolution in proposedSolution. Anschließend werden die Rich Text-Werte in einfache Textwerte konvertiert.
Führen Sie zur Anpassung die folgenden Schritte durch:
1. Greifen Sie je nach Typ des Änderungsobjekts auf die jeweilige Datei in diesem Pfad zu: <WT_HOME>\codebase\registry\XSLRepo\11.0.M030:
◦ WTChangeActivity2.xsl
◦ WTChangeIssue.xsl
◦ WTChangeOrder2.xsl
◦ WTChangeRequest2.xsl
◦ WTVariance.xsl
|
In diesem Beispiel verwenden wir die Datei WTChangeIssue.xsl.
|
2. Fügen Sie der Datei die folgenden Codezeilen hinzu:
a. Zum Entfernen des vorhandenen Attributs description:
<xsl:template match="WTChangeIssue/description"></xsl:template>
b. Zum Ersetzen des Attributs longDescription durch description:
<xsl:template match="WTChangeIssue/longDescription">
<description>
<xsl:call-template name="plainTextFilter" />
</description>
</xsl:template>
|
Der Code ruft außerdem eine XSL-Vorlage namens plainTextFilter auf, die anschließend definiert wird.
|
c. So importieren Sie die Vorlage plainTextFilter:
<xsl:import href="plainTextFilter.xsl" />
3. Erstellen Sie eine Datei namens plainTextFilter.xsl im Verzeichnis <WT_HOME>\codebase\registry\XSLRepo\11.0.M030, und fügen Sie der Datei die folgenden Codezeilen hinzu:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:filter="java:com.custom.text.conversion.PlainTextConverter" >
<xsl:template name="plainTextFilter">
<xsl:value-of select="filter:convertToPlainText(.)" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
Hierdurch wird die Methode convertToPlainText der benutzerdefinierten Klasse com.custom.text.conversion.PlainTextConverter aufgerufen. Diese Methode enthält einen Rich Text-Zeichenfolgenwert als Eingabeparameter und gibt einen einfachen Text-Zeichenfolgenwert zurück.
4. Erstellen Sie eine Klasse namens PlainTextConverter, um die oben angegebene benutzerdefinierte Klasse zu definieren:
package com.custom.text.conversion;
import com.ptc.commons.lang.util.StringEscapeUtils;
import com.ptc.core.richtext.HTMLText;
public class PlainTextConverter {
public static String convertToPlainText(String rawText) {
HTMLText htmlAttr;
String plainText = " ((null))";
try {
if (null != rawText && !rawText.isEmpty()) {
htmlAttr = HTMLText.newHTMLText(rawText);
plainText = htmlAttr.getPlainText();
plainText = StringEscapeUtils.escapeXml(plainText);
}
} catch (Exception exp) {
exp.printStackTrace();
}
return plainText;
}
}
|
Die Klasse sollte im Windchill Klassenpfad verfügbar sein. Beispiel: <WT_HOME>\codebase\com\custom\Text\conversion.
|
Nach Abschluss der oben angegebenen Schritte enthält das erstellte Paket die Attribute description, proposedSolution und reason mit einfachen Textwerten, die aus Rich Text konvertiert wurden.
Wiederholen Sie Schritt 2 für alle Änderungsobjekte und Rich Text-Attribute, die Sie konvertieren möchten.