xpath에 대한 빠른 질문. 네임 스페이스 선언과 함께 루트 요소 "Consumers"의 유효성을 검사해야합니다. 이 xml은 중개하는 브로커에 따라 다음과 같이 달라질 수 있습니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ss:Consumers xmlns:ss="http://xml.mycompany.com/XMLSchema"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Consumers xmlns="http://xml.mycompany.com/XMLSchema"/>
두 시나리오의 유효성을 검사하려면 단일 xpath 식을 작성해야합니다. 도와주세요.
XPath에서 동일한 네임 스페이스 URI를 가리키는 한 다른 접두사는 중요하지 않습니다. 빈 접두사 즉, 기본 네임 스페이스 선언을 사용하더라도 동일한 의미입니다.
예를 들어, xpathtesterfoo
에서 올바른 네임 스페이스 uri에 바인딩 된 접두사를 선언 했다면 * :
foo="http://xml.mycompany.com/XMLSchema"
다음 XPath는 두 시나리오 모두에서 1 개의 요소를 반환합니다.
//foo:Consumers
*) XPath에서 사용할 접두사를 선언하는 것은 플랫폼마다 다릅니다. 이것은 xpathtester에만 해당됩니다.
데모를 위해 <root>
요소 내에 두 가지 시나리오를 넣었고 XPath는 두 Consumers
요소를 모두 반환합니다 ( 여기 에서 데모 실행 ).
샘플 XML :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<ss:Consumers xmlns:ss="http://xml.mycompany.com/XMLSchema"/>
<Consumers xmlns="http://xml.mycompany.com/XMLSchema"/>
</root>
출력 :
<ss:Consumers xmlns:ss="http://xml.mycompany.com/XMLSchema"/>
<Consumers xmlns="http://xml.mycompany.com/XMLSchema"/>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다