問題タブ [xmlslurper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
file - groovyでXMLファイルを読み取る方法は?
以下のコード行を使用してGroovyでXMLファイルを読み取ろうとしています
Cドライブにファイルがありますが、ファイルが見つかりませんというエラーが発生します。構文に誤りはありますか?..
よろしくお願いします。
ラクシュミ
groovy - XmlSlurperをw3c.dom.Nodeオブジェクトで直接使用できますか
Axis2クライアントコードを完全に置き換えることを期待して、GroovyWSを試しています。
私が呼び出すWebサービス操作の1つは、XMLのフラグメントを返します。これをGroovyBeanに変換する必要があります。
com.sun.org.apache.xerces.internal.dom.ElementNSImpl
WebService呼び出しから出てくるインスタンスを取得しています。
のインスタンスはnew XmlSlurper().parseText(it as String)
どこにあるかを呼び出すことができます。it
ElementNSImpl
ただし、もちろん、これにより、要素を文字列に書き込んでから、再解析して丸呑みします。この不要な手順を回避する方法はありますか?
最終的には、丸呑みされたオブジェクトをGroovyBeanに変えたいと思います。これを行うためのより良い方法はありますか?DomToGroovyについて疑問に思っていましたが、それでもGroovyシェルで実行した文字列が表示されます。
xml - XmlSlurper.appendNodeはサイズを変更しません
XmlSlurperを使用してXMLを操作します。更新するまでは問題なく動作します。appendNodeはサイズを反映していません。
構造の更新後にXmlSlurperを操作するにはどうすればよいですか?
XML定義:
コード魔女は失敗します:
BMW車を含むXMLを印刷する
groovy - Groovy XMLSlurper がスキーマに一致するようにドキュメントを更新
過去にうまくいかないように見える問題があり、知識のあるメイベンが解決策を提供してくれることを願っています。
シーケンスを含む XSD を含むドキュメントがあります。ご存知のように、これはすべての要素が指定された順序で表示される必要があることを意味します。一部のオプションもオプションであるため、これを使用する必要があります (minOccurs = "0")。
スキーマの簡略化された部分を次に示します。
XML ドキュメントの関連部分:
次の 2 つのことを実行できる必要があります。
- 要素が存在する場合は、その値を更新します。たとえば、resultCode「005009」のenteredEmployeeId値を「EntVal」に変更します。これには、その要素が存在するかどうかを調べる必要があります。
- 要素が存在しない場合は、スキーマに従って検証に合格する場所に追加します。たとえば、resultCode "005025" に resultReporter とenteredEmployeeId を追加します。上記の XML スニペットに示されているように、存在する場合と存在しない場合があるオプションの要素があることに注意してください。
「結果」ノードの最後にノードを追加することはできましたが、検索を機能させて更新することも、ノードを適切な場所に挿入して XSD を満たすこともできません。コードは次のとおりです。
このような XML 出力を探しています (最初の結果の値が更新され、2 番目の結果の値が挿入されることに注意してください。ただし、適切な場所に... 他の要素も存在する可能性があります!):
だから:誰でもこれを機能させる方法を教えてもらえますか?ありがとう!マーク
groovy - XMLSlurper の appendNode が変更を認識しない
XMLSlurper を使用して XML ドキュメントを更新するのに問題があります。ほとんどのことは機能しますが、状況によっては、追加したノード (appendNode) が「検索」で見つからないことがあります。新しいノードは処理の最後にありますが、子を追加している最中には見つかりません。
XMLSlurper に関する投稿を見つけました。新しいノードを見つけるには、parseText を再度呼び出すか、または StreaMarkupBuilder (以下を参照) を呼び出す必要があると書かれています。本当?!それは私がSOで検証すると思ったので、とてもぎこちないようです。
コードスニペットを次に示します。ノードが追加されたばかりであっても、「検索」は NoChildren を取得します。
「appendNode は丸呑みされたドキュメントを直接変更しません。StreamingMarkupBuilder を使用してドキュメントが書き出されると、編集は「その場で」適用されます。」 http://markmail.org/message/5nmxbhwna7hr5zcq#query:related%3A5nmxbhwna7hr5zcq+page:1+mid:bkdesettsnfnieno+state:results
新しいノードが見つからないのはなぜですか?!
groovy - Groovy XMLSlurper appendNode - どのように強制的に有効にしますか?
Groovy の XMLSlurper と StreamingMarkupBuilder を使用すると、XML ドキュメントの変更がすぐに反映されないことを理解しています。ただし、ドキュメントを変更するたびに多くの処理を行わなければならないのは不満です。私がそれを機能させる唯一の方法は、私がこれを行う場合です:
新しいノードを追加するたびに。もっと良い方法があるはずです!誰でも助けることができますか?
groovy - groovy での XmlSlurper と http.get
まず、http.get を使用して txt ファイルを保存します。
次に、以下のように、XmlSlurper().parse の outputFileName で新しく作成されたファイルを使用します。
しかし、new XmlSlurper().parse(inputFile) を実行するとエラーが発生します。
http.get で作成されているテキスト ファイル outputFileName が、XML ファイルではなく HTML ファイルのように見えることに気付きました。そのため、そこに含まれているはずの XML コードをコピーして outputFileName に貼り付け、コードの最初の部分をスキップして、XmlSlurper().parse() ビットのみを実行したところ、機能しました。
outputFileName は xml ファイルであるはずですか? HTMLタグがたくさんあります。
前もって感謝します!:D
groovy - Jsoup vs groovy XmlSlurper?
アプリケーション (groovy に基づく) の一部の xml コンテンツを解析しようとしていますが、この時点で JSoup と groovy のネイティブ XMLSlurper のどちらかを選択する必要があります。
解析された RSS フィードは、25 項目を超えない中サイズのものです。したがって、解析されるコンテンツのサイズは、大きすぎたり小さすぎたりしません。
コンテンツのサイズは中程度ですが、コンテンツの解析は数回行われます。では、オーバーヘッドと速度の観点から、2 つのうちどちらがより適切な選択でしょうか?
xml - GroovyXmlSlurperとXmlParser
このトピックについてしばらく検索したところ、いくつかの結果も見つかりました。これについては、投稿の最後に記載しています。誰かが私がそれらの下にリストされたケースのためにこれらの3つの質問に正確に答えるのを手伝ってもらえますか?
XmlSluperを使用するユースケースがXmlParserよりも理にかなっているのはどれですか(API /構文の使いやすさの観点から)?
どちらがメモリ効率が高いですか?(Slurperのように見えます)
どちらがxmlをより速く処理しますか?
ケースa。xml内のほぼすべてのノードを読み取る必要がある場合はどうなりますか?
ケースb。(gpath式を使用するなど)いくつかのノードを読み取る必要がある場合はどうなりますか?
ケースc。xmlを更新/変換する必要がある場合は?
xmlドキュメントが些細なものではない場合(xmlの深さとサイズのレベル)。
リソース:
http://www.tutkiun.com/2009/10/xmlparser-and-xmlslurper.htmlの状態:
XMLParserとXMLSlurperの違い:
XMLParserとXMLSlurperは、単純な読み取りに使用する場合は類似点がありますが、高度な読み取りに使用する場合や、他の形式のXMLドキュメントを処理する場合は、2つの間に違いがあります。
XMLParserは、ドキュメントの解析後に中間結果を保存します。しかしその一方で、
XMLSlurperは、XMLドキュメントの処理後に内部結果を保存しません。
解析された情報を処理すると、実際の基本的な違いが明らかになります。これは、ストリーミングシナリオで直接インプレースデータ操作および処理を使用して処理する場合です。
http://groovy.dzone.com/news/john-wilson-groovy-and-xml
groovyのドキュメント(XmlParser、XmlSlurper)とgroovyのサイトはそれらをうまく説明していますが(こことここ)、前述の質問を説明するのにうまくいきません。
xml - XmlSlurper を使用して xml を解析する際に、ハイフンでつながれた属性名 (例: model_name) を読み取る方法
Groovy で XmlSlurper を使用して XML を解析中に属性を読み取ろうとしています。ハイフン付きの属性を読み取ろうとするとmodel-number
、例外が発生します。