서식 있는 텍스트 속성을 단순 텍스트 속성으로 변환
getLongDescription, getLongProposedSolution 및 getLongReason과 같은 API를 사용하여 각각 마크업 태그가 있는 longDescription, longProposedSolution, longReason과 같은 서식 있는 콘텐츠를 가져옵니다.
getDescription, getProposedSolution 및 getReason과 같은 API를 사용하여 설명, 제안된 솔루션 및 이유에 대한 일반 텍스트 값을 가져옵니다.
서식 있는 콘텐츠(마크업 태그 포함)를 간단한 일반 텍스트로 변환하려면
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
코드를 사용합니다.
서식 있는 텍스트 속성을 복제 패키지의 단순 텍스트 속성으로 변환
변경 객체 패키지를 Windchill로 내보내는 동안, longProposedSolution, longReason 및 longDescription 등 서식 있는 텍스트 속성이 제외된 경우 소스에서 내보낸 서식 있는 텍스트 속성을 단순 텍스트 속성으로 변환하도록 소스 시스템을 사용자 정의할 수 있습니다. 이러한 사용자 정의에서는 description, proposedSolution 및 reason의 기존 속성을 제거하고 longDescription을 description으로, longReason을 reason으로, longProposedSolution을 proposedSolution으로 변환합니다. 그 결과 서식 있는 텍스트 값이 단순 텍스트 값으로 변환됩니다.
사용자 정의를 위해 다음 단계를 수행하십시오.
1. 변경 객체의 유형에 따라 <WT_HOME>\codebase\registry\XSLRepo\11.0.M030 경로에서 각각의 파일에 액세스합니다.
◦ WTChangeActivity2.xsl
◦ WTChangeIssue.xsl
◦ WTChangeOrder2.xsl
◦ WTChangeRequest2.xsl
◦ WTVariance.xsl
|
이 예에서는 WTChangeIssue.xsl 파일을 사용합니다.
|
2. 파일에 다음 코드의 라인을 추가합니다.
a. 기존 description 속성을 제거할 경우:
<xsl:template match="WTChangeIssue/description"></xsl:template>
b. longDescription 속성을 description으로 교체할 경우:
<xsl:template match="WTChangeIssue/longDescription">
<description>
<xsl:call-template name="plainTextFilter" />
</description>
</xsl:template>
|
이 코드는 이후에 정의할 plainTextFilter라는 XSL 템플릿도 호출합니다.
|
c. plainTextFilter 템플릿을 가져올 경우:
<xsl:import href="plainTextFilter.xsl" />
3. <WT_HOME>\codebase\registry\XSLRepo\11.0.M030 위치에 plainTextFilter.xsl 파일을 작성하고 파일에 다음 코드 라인을 추가합니다.
<?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>
이는 사용자 정의 클래스 com.custom.text.conversion.PlainTextConverter의 convertToPlainText 메소드를 호출합니다. 이 메소드는 서식 있는 텍스트 문자열 값을 입력 매개변수로 포함하고 단순 텍스트 문자열 값을 반환합니다.
4. PlainTextConverter라는 클래스를 작성하여 위에서 지정된 사용자 정의 클래스를 정의합니다.
package com.custom.text.conversion;
import org.apache.commons.lang3.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;
}
}
|
클래스는 Windchill 클래스 경로에서 사용할 수 있어야 합니다(예: <WT_HOME>\codebase\com\custom\text\conversion).
|
위에서 지정된 단계를 완료하면 작성된 패키지에 서식 있는 텍스트에서 변환된 단순 텍스트 값이 있는 description, proposedSolution 및 reason 속성이 포함됩니다.
변환하려는 모든 변경 객체 및 서식 있는 텍스트 속성에 대해 단계 2를 반복합니다.