0

次のHTMLスニペットを前提として、属性がに等しいタグとmeta属性がに等しいタグのコンテンツ属性のテキストを抽出する必要があります。Groovy:XMLSlurperの正しい構文で示されているものを試し、特定の属性を持つ要素を見つけましたが、 Groovy1.8.6では同じようには機能しないようです。namedescriptionmetapropertyog:title

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <meta property="fb:admins" content="100003979125336" />
    <meta name="description" content="Shiny embossed blue butterfly" />
    <meta name="keywords" content="Fancy That Blue Butterfly Platter" />
    <meta property="og:title" content="Fancy That Blue Butterfly Platter" />

GPathでこれらを取得するためのクリーンな方法はありますか?

4

1 に答える 1

0

これは groovy 2.0.1 で動作します - 現時点では 1.8.6 は手元にありません:

def slurper = new XmlSlurper()
File xmlFile = new File('sample.xml')
def xml = slurper.parseText(xmlFile.text)
println 'description = ' + xml.head.children().find{it.name() == 'meta' && it.@name == 'description'}.@content
println 'og:title = ' + xml.head.children().find{it.name() == 'meta' && it.@property == 'og:title'}.@content
于 2012-09-07T02:27:43.460 に答える