2009-12-14 4 views
2

다음 감안할 때 : 오히려 접두어를 사용하는 것보다
당신은 그찾기 포함 된 네임 스페이스 URI의

이이 같은 선언 = ""그 '자신의 네임 스페이스와 조직 노드의 xmlns로 선언이 XML 샘플에 포함 된주의 것 . xpath를 사용하여 XML 문서에서 선언 된 모든 네임 스페이스를 찾는 방법이 있습니까?

몇 가지 변형을 시도했지만, 불행히도 xmlns는 문서의 다른 속성 (명백한 이유로)으로 취급되지 않으며 xpath를 사용하여 문서를 가져올 방법을 찾을 수 없습니다.

// @ *에는 예를 들어 포함되지 않습니다.

문서의 모든 xmlns 특성 목록이 필요합니다.

<rss version="2.0" xmlns:a10="http://www.w3.org/2005/Atom"> 
    <channel xmlns:media="http://search.yahoo.com/mrss"> 
    <title>Search Results Title</title> 
    <link>http://acme.co.za/searchResults</link> 
    <description>Search Results Descrption</description> 
    <item> 
     <guid isPermaLink="false">uuid:169d3229-3b99-4647-9791-492bbbf4c419/PGS0900.PDF</guid> 
     <link>link</link> 
     <title>Title</title> 
     <description>This page...</description> 
     <media:thumbnail url="..." width="100" height="100"></media:thumbnail> 
     <Organisation xmlns="http://acme.co.za/MYNAMESPACE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <Name>Volkswagen</Name> 
     <Business>Kraft-durch-Freude-Wagen</Business> 
     <Type>Public</Type> 
     <RegistrationNumber>5908213224080</RegistrationNumber> 
     </Organisation> 
    </item> 
    </channel> 
</rss> 

답변

1

당신은, 그러나 //namespace:*

같은 것을 할 수있을이 작품 가정한다, 그것은 중복의 많은 문서 순서에, 당신 네임 스페이스 노드의 목록을 제공합니다. DOM을 통해 문서를 단순히 트래버스하여 네임 스페이스 집합 (누적 없음)을 누적하는 것이 더 나을 것입니다. 요소뿐만 아니라 속성도 확인해야합니다.

0

올바른 구문은 // 네임 스페이스 URI입니다() 당신에게 문서의 네임 스페이스를 모두 제공

.

감사합니다. 크레이그.

+0

// */namespace-uri()는 요소의 네임 스페이스 만 보여줍니다. 그러나이 두 식은 모두 중복을 반환합니다. – xcut

관련 문제