서식 있는 텍스트 속성을 단순 텍스트 속성으로 변환
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 11.1 F000에서 도입되었으므로 Windchill 11.0 M030으로 내보낸 모든 변경 객체 패키지는 longDescription, longProposedSolution, longReason 등의 서식 있는 텍스트 속성을 제외합니다. 그러나 소스에서 내보낸 서식 있는 텍스트 속성을 단순 텍스트 속성으로 변환하도록 소스 시스템을 사용자 정의할 수 있습니다. 이러한 사용자 정의에서는 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.lang.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 클래스 경로(예: <windchill_home>\codebase\com\custom\text\conversion)에서 사용할 수 있어야 합니다.
|
위에서 지정된 단계를 완료하면 Windchill 11.0 M030에 대해 작성된 패키지에 서식 있는 텍스트에서 변환된 단순 텍스트 값이 있는 description, proposedSolution 및 reason 속성이 포함됩니다.
변환하려는 모든 변경 객체 및 서식 있는 텍스트 속성에 대해 단계 2를 반복합니다.