2014-06-23 4 views
0

Oracle 10g에서 이름 공간이있는 태그의 값을 추출하려고합니다. 내 쿼리는네임 스페이스가있는 태그의 Extract/extractValue

select  extract(xmltype(xml_text), 
      '/feed/entry[1]/yt:statistics', 
      'xmlns:yt="http://gdata.youtube.com/schemas/2007"') title 
from edgecast_xml 
where load_date > sysdate-1 

이며 null를 돌려

원래 XML이다이 (내가 반대 링크를 방지하기 위해 http로 HTP로 레이블을했다) :

<feed xmlns='htp://www.w3.org/2005/Atom' xmlns:media='htp://search.yahoo.com/mrss/' xmlns:openSearch='htp://a9.com/-/spec/opensearch/1.1/' xmlns:gd='htp://schemas.google.com/g/2005' xmlns:yt='http://gdata.youtube.com/schemas/2007' gd:etag='W/&quot;D0YEQH88eSp7I2A9XRZQEU8.&quot;'> 
    <entry gd:etag='W/&quot;CUMNRH47eCp7I2A9XRZRGUo.&quot;'> 
     <id>tag:youtube.com,2008:video:qXPtXPJLnJY</id> 
     <updated>2014-06-17T02:51:35.000Z</updated> 
     <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/> 
     <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='Nonprofit' label='Nonprofits &amp; Activism'/> 
     <title>Rear Admiral Lee Addresses Restrictive Regulations on Religious Liberty</title> 
     <gd:rating average='4.8343196' max='5' min='1' numRaters='5239' rel='http://schemas.google.com/g/2005#overall'/> 
     <yt:statistics favoriteCount='0' viewCount='365565'/> 
     <yt:rating numDislikes='217' numLikes='5022'/> 
    </entry> 
</feed> 

을하는 이유는 무엇입니까 없는? 그냥/feed/entry [1]을 선택하면 입력 태그 내의 모든 것에 대해 xml을 반환합니다.

+0

가 XML에는'xmlns' 없습니다. 왜 네임 스페이스를 사용하고 있습니까? – helderdarocha

+0

피드 태그를 포함하는 것을 실수로 잊었습니다. v4venletta

답변

0

/feed/entry[1]을 사용할 때 결과가 나타나기 때문에 기본 (Atom) 네임 스페이스가 자동으로 등록 된 것 같습니다. yt 네임 스페이스도 등록되어 있으므로 제대로 작동해야합니다. <yt:statistics> 요소 더 텍스트 내용이 없기 때문에 당신이 /feed/entry[1]/yt:statistics의 문자열 값을 추출 할 때

당신은 를 얻을. 빈 태그입니다. 하지만 당신은 그 속성을 읽을 수 있습니다

/feed/entry[1]/yt:statistics/@viewCount 

/feed/entry[1]/yt:statistics/@favoriteCount 
+0

굉장! 고맙습니다! – v4venletta

관련 문제