● Target XML

<?xml version="1.0" encoding="UTF-8"?>
<result>
 <header>
  <response_code>201</response_code>
 </header>
 <item>
  <fileinfo>
   <property name="realname"><![CDATA[달려라네오.doc]]></property>
   <property name="filesize"><![CDATA[45241]]></property>
   <property name="mimetype"><![CDATA[application/pdf]]></property>
   <property name="width"><![CDATA[0]]></property>
   <property name="height"><![CDATA[0]]></property>
  </fileinfo>
 </item>
</result>




● RubySource

require "net/http"
require "rexml/document"

...
.....
........
        def callxml(docurl)
            if docurl == nil
                return 0
            end

            pdfsize = 0

            begin
            xml_req = Net::HTTP.get_response(URI.parse("#{docurl}")).body
            #puts "#{xml_req}"   << XML의 모든 내용을 출력합니다.

            doc = REXML::Document.new(xml_req)
            doc.elements.each('result/item/fileinfo/property') do |ele|
                #propertys << ele.elements['property']
                #puts ">>> #{ele.elements.text}"
                #puts ">>> #{ele.elements.attributes.values}"

                #puts ">>> #{ele.name}"
                #puts ">>> #{ele.attributes}"
                #puts ">>> #{ele.attributes.values}"
                #puts ">>> #{ele.elements['property'].text}"
                #puts ">>> #{ele.elements['property'].attributes.value}"
                #puts ">>> #{ele.elements['filesize'].text}"

                if "#{ele.attributes.values}" == "filesize"
                    pdfsize = ele.text
                end
            end

........


#으로 처리된곳은 주석입니다.   
   XML 을 분석하는 과정에서 값이 무엇이 찍히는지 보기 위해 디버깅한 코드로 보시면 되겠네요.
원하는것은 fileSize  찾는것인데 우휴.. 생각보다 시간이좀 걸렸답니다.

아차! HTTP와 REXML 을 사용하기 위해서는  import 해야하는 자원도 잊어서는 안되죠!!
require "net/http"
require "rexml/document"
2줄을 최상위에 선언 해야 되겠습니다. 그리고 class도 만들어서 사용 해야 되요.. ^^





글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!