XSLT 1.0을 사용하여 XML의 요소를 재정렬하려고합니다. 아래는 XML의 작은 스 니펫입니다.
<RIMSDB1 xmlns="http://kiris.nps21.org/xsd">
<ROW>
<ReportID>1</ReportID>
<WKYMD>20160610</WKYMD>
<RunSystemDate>20160610032048</RunSystemDate>
</ROW>
<ROW>
<ReportID>2</ReportID>
<WKYMD>27869</WKYMD>
<RunSystemDate>495876043985778649</RunSystemDate>
</ROW>
이것은 변환하는 데 사용하는 XSLT입니다.
<xsl:template match="*/ROW">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="WKYMD" />
<xsl:apply-templates select="RunSystemDate" />
<xsl:apply-templates select="ReportID" />
</xsl:copy>
문제는 변환 할 때 순서대로 변경되지 않지만 xmlns = "http://kiris.nps21.org/xsd"를
<RIMSDB1 xmlns="http://kiris.nps21.org/xsd">
올바른 변환을 얻습니다.
<RIMSDB1>
<ROW>
<WKYMD>20160610</WKYMD>
<RunSystemDate>20160610032048</RunSystemDate>
<ReportID>1</ReportID>
</ROW>
<ROW>
<WKYMD>27869</WKYMD>
<RunSystemDate>495876043985778649</RunSystemDate>
<ReportID>2</ReportID>
</ROW>
재정렬하는 더 좋은 방법이 있다면 누구든지 무슨 일이 일어나고 있는지에 대해 밝힐 수 있습니까?
미리 감사드립니다.
소스 문서 xmlns="http://kiris.nps21.org/xsd"
에 네임 스페이스 접두사 또는 재정의 네임 스페이스 선언이없는 모든 요소 가 포함되면 해당 네임 스페이스를 상속하고 네임 스페이스에 바인딩됩니다 http://kiris.nps21.org/xsd
. 네임 스페이스 접두사가없는 경우 알아 차 리거나 이해하기 어려운 경우가 있습니다.
XSLT를 조정하여 접두사가있는 네임 스페이스를 선언 한 다음 해당 요소를 적절하게 처리하기 위해 네임 스페이스 접두사를 사용하도록 선택 및 일치 식을 조정해야합니다.
예를 들면 :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:k="http://kiris.nps21.org/xsd"
version="1.0">
<xsl:template match="*/k:ROW">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="k:WKYMD" />
<xsl:apply-templates select="k:RunSystemDate" />
<xsl:apply-templates select="k:ReportID" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다