2013-05-23 2 views
0

xmlstarlet에서 xmlns 특성 값을 선택하려면 어떻게해야합니까? xmlstarlet을 사용하여 xmlns 특성 선택

나는

xml sel -t -v //@xmlns input.xml 

으로 시도했지만 어떤 결과를 얻을하지 않았다. 반면에

xml sel -t -v //@id input.xml 

은 예상대로 모든 ID를 인쇄합니다. xmlns에 몇 가지 이름 공간을 추가해야합니까? 그렇다면 어떤가?

+0

Ok, 여기에서 답을 찾았습니다. http://stackoverflow.com/questions/122463/how-to- retrieve-namespace-in-xml-files-using-xpath 죄송합니다! – hooch

답변

1

XPath 데이터 모델에서 특성과 네임 스페이스는 별도의 노드 종류입니다. 소스 XML의 네임 스페이스 선언은 특성 노드가 아닌 데이터 모델의 네임 스페이스 노드가되며 특성 축이 아닌 네임 스페이스 축을 사용하여 선택됩니다. 네임 스페이스 노드에서 이름은 네임 스페이스 접두사이며 값은 네임 스페이스 URI입니다. 문서에서 기본 (이름 지정되지 않은) 네임 스페이스 노드를 모두 찾으려면 //namespace::*[name()='']

+0

감사합니다. 올바른 방향으로 가고 있습니다. 그러나, 정말로 원하는 것은 다음과 같습니다. 기본 네임 스페이스가 설정되었는지 확인하고 설정된 경우 해당 URI를 찾습니다. 편의를 위해 빈 네임 스페이스의 모든 요소를 ​​포함 할 수있는 문서 작업을하고 있습니다. 그러나 경우에 따라 요소가 기본 네임 스페이스에도있을 수 있습니다. 그래서 저는이 두 가지 경우를 다르게 치료할 방법이 필요합니다. – hooch

관련 문제