XML 데이터를 읽고 형식을 지정하려고합니다. XSLT를 사용하여 데이터를 읽습니다. 나는 그 문제에 직면하고있다. 누군가 나를 도와 줄 수 있을까요?값이 없을 때 빈 노드 만들기
필자는 부모 노드가 1 개이고 나머지 XML 계층 구조가 평면 계층 구조 인 XML 입력이 있습니다.
<employee>
<Name>ABC</Name>
<Department>IT</Department>
<Age>30</Age>
<Salary>40000</Salary>
<Name>XYZ</Name>
<Department>IT</Department>
<Age>25</Age>
<Salary>30000</Salary>
</employee>
여기서 이름 노드는 필수 노드이고 나머지는 선택적 노드입니다. 내 요구 사항은 모든 선택적 노드가 입력 XML에 존재하지 않으면 그 노드에 대해 빈 노드를 생성하는 것입니다.
하지만 첫 번째 직원 노드가없는 아래 시나리오에서는 코드가 실패합니다. 모든 데이터가 아래
<employee>
<Name>ABC</Name>
<Department>IT</Department>
<Age>30</Age>
<Salary>30000</Salary>
<Name>XYZ</Name>
<Department>IT</Department>
<Age>25</Age>
<Salary></Salary>
</employee>
처럼 그 제공 출력의 입력에 있지만 언급 한 시나리오에서 오는 경우가 잘 작동
<xsl:element name="Employee_Information">
<xsl:for-each select="Name">
<xsl:variable name="positionVariable">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:element name="Employee_Name">
<xsl:value-of select="."/>
</xsl:element>
<xsl:element name="Employee_Dept">
<xsl:value-of select="../Department[number($positionVariable)]"/>
</xsl:element>
<xsl:element name="Employee_Name">
<xsl:value-of select="../Age[number($positionVariable)]"/>
</xsl:element>
<xsl:element name="Employee_Name">
<xsl:value-of select="../Salary[number($positionVariable)]"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
<employee>
<Name>ABC</Name>
<Department>IT</Department>
<Age>30</Age>
<Name>XYZ</Name>
<Department>IT</Department>
<Age>25</Age>
<Salary>30000</Salary>
</employee>
내가 작성한 코드는 잘못된 직원을위한 빈 노드를 만듭니다. 첫 번째 직원에 대해 빈 노드를 만들어야하는 두 번째 직원의 빈 노드 만들기.
다른 정보가 필요하면 알려주십시오. 대단히 감사드립니다. Kaushik
는 XSLT 1.0을 사용하고 있습니까 :
XSLT 1.0 등가을하는 더 까다로운 조금이다 : XSLT 2.0에서는 사용하여 해결하기 위해 사소한 것 또는 2.0? –
XSLT 1.0을 사용하고 있습니다. –