0
내 요구 사항은 _가있는 모든 노드 이름의 이름을 새 이름으로 바꾸는 것입니다. 노드 이름에 _ present의 char 권리를 제거하고 이름의 왼쪽을 새 노드 이름으로 남기는 방법은 무엇입니까? 예컨대xslt를 사용하여 노드 이름에 '_'문자를 제거하는 방법
<abc_2013></abc_2013> to be renamed as <abc></abc>
내 요구 사항은 _가있는 모든 노드 이름의 이름을 새 이름으로 바꾸는 것입니다. 노드 이름에 _ present의 char 권리를 제거하고 이름의 왼쪽을 새 노드 이름으로 남기는 방법은 무엇입니까? 예컨대xslt를 사용하여 노드 이름에 '_'문자를 제거하는 방법
<abc_2013></abc_2013> to be renamed as <abc></abc>
이 변환 :
:<abc_2013>xYz</abc_2013>
가 원하는, 올바른 결과 생산이 XML 문서에 적용
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[contains(name(), '_')]">
<xsl:element name="{substring-before(name(),'_')}"
namespace="{namespace-uri()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
적절한 사용과 오버라이드 (override) :
<abc>xYz</abc>
설명.
적절한 사용 substring-before()