홈>
루프에서 현재 하위 요소 (End @value)의 특성을 다음 하위 요소 특성 (Origin @value)과 비교하기 위해 schematron 규칙을 작성하려고합니다. 내가 옳은 일을하고 있는지 잘 모르겠으므로 여기에 내 시도가 있습니다
내 시도는 다음과 같습니다 :
<sch:rule context="test">
<sch:assert test="End/@value = following-sibling::test/Origin/@value " >Both the value are not Equal. </sch:assert>
</sch:rule>
이 규칙은 마지막 요소까지 잘 작동하고 마지막 요소는 존재하지 않는 다른 요소를 예상합니다. "following-sibling"문제 일 수 있습니다.
다음은 XML 파일입니다 :
<tests>
<test x="-276.724" xEnd="-276.193">
<Origin value="36.599"/>
<End value="36.6"/>
</test>
<test x="-276.193" xEnd="-260.29">
<Origin value="36.6"/>
<End value="36.603"/>
</test>
<test x="-260.29" xEnd="-240.194">
<Origin value="36.603"/>
<End value="36.601"/>
</test>
<test x="-240.194" xEnd="-220.046">
<Origin value="36.601"/>
<End value="36.601"/>
</test>
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
예상 결과 : 현재 하위 요소 (End @value) = 다음 하위 요소 속성 (Origin @value)이므로 출력이 성공해야합니다.
실제 결과.
<test x="-220.046" xEnd="-200.09">
<Origin value="36.601"/>
<End value="36.602"/>
</test>
이 요소에 대해 어설 션 오류가 발생했습니다
- 답변 # 1
관련 자료
- javascript - 배열의 요소와 비교하여 객체를 필터링하는 방법
- javascript - 라이브 피드 XML에서 요소 및 속성에 액세스
- python 3.x - 숫자로 요소를 정렬하는 데 사용하는 현재 루프는 범위를 벗어난 목록 색인을 생성합니다
- xml - XSL에서 현재 값에 속성을 어떻게 추가 할 수 있습니까?
- mysql - SQL 날짜 및 현재 날짜와 비교하여 PHP If 문을 사용하는 방법은 무엇입니까?
- 파이썬에서 json의 요소 비교
- Laravel Dusk 여러 요소의 속성을 얻는 방법?
- javascript - 다른 속성을 가진 요소 추가
- xml - XSLT의 텍스트 (요소 속성)를 한 줄로 포맷하는 방법
- R에서 데이터 프레임의 요소 비교
- python - 목록에서 현재 요소보다 큰 모든 요소 찾기
- java - 속성에 따라 두 목록에 동일한 요소가 있는지 비교
- python - Selenium에서 동일한 html 속성을 가진 요소 찾기
- 내부의 모든 요소에 속성 추가 /순수 JavaScript [복제]
- python 3.x - 대체 속성을 기반으로 모든 요소를 선택하는 방법은 무엇입니까? [뷰티풀 스프]
- javascript - 배열을 반복하고 요소를 데이터 속성으로 사용
- java - 배열에서 자신의 요소 비교
- jquery - 선택한 여러 데이터 속성과 일치하는 요소 표시
- 현재 배열 값을 다음과 비교하기위한 Javascript ES6 배열 방법
관련 질문
- 값 메서드의 xpath에서 sql:column 함수 사용
- XMLLINT를 사용하여 XPath 노드의 다른 수를 병합합니다
- Javascript XPath에서 KML 파일의 네임스페이스를 생성하려면 어떻게 해야 하나요?
- XSLT를 사용하여 XML에서 속성을 설정하는 방법은 무엇입니까?
- xml : XPath1.0을 사용하여 특정 조건과 일치하는 속성 이름을 검색 할 수 있습니까?
- javascript : XMLDOC에서 XPATH에서 DOM에 배치하지 않고도 XPath를 평가할 수 없습니다.
- xml : XSLT 2.0 : 노드 선택을 위해 예상대로 작동하지 않는 XPath 조건
- excel : 텍스트 문자열에서 가변 길이를 추출합니다
- 링크 된 XML 파일 (Python)에서 요소를 클릭하고 텍스트를 파싱하는 방법?
- HTML 속성을 추출하기 위해 PostgreSQL에서 XPath를 사용하는 방법은 무엇입니까?
XSLT 2.0 바인딩을 사용한다고 가정합니다.
그렇다면,End/@value = following-sibling::test/Origin/@value
value
를 비교End
의 속성value
와 자식 요소Origin
의 속성 형제test
에 따라모든의 자식 요소 요소.Origin/@value
의any이면 true로 평가됩니다. 값이 일치합니다. 아마 당신이 원하는 것이 아닐 것입니다.와이즈 비즈 그리고
End
요소는 모두Origin
의 자식입니다. 요소 (XPath 표현식의 컨텍스트) 두 개의 하위 요소를 테스트하려면 다음을 수행하십시오.<sch:rule context="test"> <sch:assert test="End/@value = Origin/@value" >Both the value are not Equal. </sch:assert> </sch:rule>
를 테스트하려면 현재End/@value
에서test
와 요소 다음Origin/@value
에서 다음test
가 없을 때 요소가 실패하지 않습니다. 요소 :와이즈 비즈 XPath를 첫 번째
<sch:rule context="test[exists(following-sibling::test[1])]"> <sch:assert test="End/@value = following-sibling::test[1]/Origin/@value" >Both the value are not Equal. </sch:assert> </sch:rule>
만 선택하도록 제한합니다. .[1]