XML 파일에서 첫 번째 비어 있지 않은 값을 가져 오는 데 문제가 있습니다. 여기 XML에서 첫 번째 비어 있지 않은 값 찾기
가있는 것처럼 XML 파일이 보이는 것을 : 내가 처음<last_printed>
요소는이 XSLT를 사용하여 날짜를 구문 분석 잡기 위해 노력하고
<?xml version="1.0"?>
<ROOT>
<Student>
<Student_id>TEST1</Student_id>
<last_printed>2014-03-11-08:00</last_printed>
</Student>
<Student>
<Student_id>TEST3</Student_id>
<last_printed></last_printed>
</Student>
<Student>
<Student_id>TEST4</Student_id>
<last_printed>2014-03-06-08:00</last_printed>
</Student>
</ROOT>
:
는<xsl:variable name="day" select="substring-before(substring-after(substring-after(/ROOT/Student[1]/last_printed[text() != ''], '-'), '-'), '-')"/>
<xsl:variable name="month" select="substring-before(substring-after(/ROOT/Student[1]/last_printed[text() != ''], '-'), '-')"/>
<xsl:variable name="year" select="substring-before(/ROOT/Student[1]/last_printed[text() != ''], '-')"/>
최종 결과는 인 표시되는 날짜 MMDDYYYY :
<xsl:value-of select="substring(concat($month, $day, $year, $padding), 1, 8)"/>
색인을 배치 해 보았습니다.
시퀀스 : 나는 오류가 나타 얻을
<xsl:variable name="year" select="substring-before(/ROOT/Student/last_printed[1][text() != ''], '-')"/>
나는
[1]
을 포함하지 않는 경우 : 위와 같이 변수 문에서 학생의 요소[1]
가, 나 또한 여기 퍼팅 시도 ("2014-03-06-08 : 00", "2014-03-11-08 : 00")
두 개 이상의 항목 중 하나 이상의 항목이 모두 허용되지 않습니다. XML의 날짜 값
[1]
은 XSLT가 첫 번째 요소를 가져 오는 것처럼 보이지만 빈 요소를 가져옵니다.
첫 번째 비어 있지 않은 요소를 어떻게 잡아낼 수 있습니까? [text() != '']
이 도움이 될 것이라고 생각했지만 그렇지 않습니다.
XML이 유효하지 않습니다. '' – Utkanos
@Utkanos - 죄송합니다, 복사하여 붙여 넣기 오류 뒤에 ''. – RXC
나에게 잘 들리네 - http://www.xmlplayground.com/lTakkR – Utkanos