def src = args[0]のようにやってみたら
def htmlFile=new File(src)
String str = htmlFile.getText("UTF8")
def node = new XmlSlurper().parseText(str)
//以下略
Caught: java.io.IOException: Server returned HTTP response code: 503 for URL:というエラーが出て止まる。
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
at xmlSlurperTest.run(xmlSlurperTest_2.groovy:4)
ローカル上でやっているので、xhtml の DTD を読みに行って503ってことらしい。
隣に居たO部長に
「〜となるんですけど、DTD を読みに行かずにする設定ってどうやるのか知りませんか?」
「ヘッダ読み込まなきゃいいんじゃないの?」
そうですけど…
「もういいです自分で調べます」
って言って Groovy の JavaDoc 見に行こうとしてたら方法をメッセンジャーで送ってもらえた。
def src = args[0]フィーチャー?
def htmlFile=new File(src)
String str = htmlFile.getText("UTF8")
def parser = new XmlSlurper()
//↓フィーチャーの指定。これを入れないと DTD を読みにいってエラーになる。
parser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false)
def node = parser.parseText(str)
//以下略
Java 入門 | DOM (Document Object Model)
groovy.util.XmlSlurper は org.xml.sax.helpers.DefaultHandler のサブクラスで、基本的にはSAXみたい。
デフォルトで true なのか。ふむ。

0 コメント:
コメントを投稿