問題タブ [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.
grails - groovy/XMLSlurper がノードから html タグを削除しないようにするにはどうすればよいですか?
POST 応答から HTML ファイルを読み取り、XMLSlurper で解析しています。ページの textarea ノードにはいくつかの HTML コードが含まれており (非 URL コード - 私の選択ではありません)、その値を読み取ると、Groovy はすべてのタグを削除します。
例:
上記を解析してから「テキストエリア」ノードを見つける(...)と、次のように返されます。
タグはありません。タグの保管方法を教えてください。
groovy - Groovy: XmlSlurper、最初にノードを置換できず、同じノードを再度追加しようとしました。誰もがこの問題に直面した
//xml slurper を使用して、置き換えられたノードを xml に戻すことができません。スタックオーバーフロー例外をスローします。今それを行う方法を考えます
xml - XmlSlurperを使用した(非常に)大きなXMLファイルの解析
私はGroovyに少し慣れていないので、XmlSlurperを使用して(かなり)大きなXMLファイル(1Gb以上)を読み取ろうとしています。これは、DOM全体を構築しないため、大きなファイルでも驚異的に機能するはずです。メモリ内。
それにもかかわらず、「OutOfMemoryError:Javaヒープスペース」が発生し続けているため、明らかに間違っていることがあると思います。Xmx設定を増やしてみましたが、後でさらに大きなファイルを処理しなければならない可能性があるため、問題を解決したいと思います。
これが私が使用したコード行です:
何が悪いのかについてのヒントはありますか?
前もって感謝します、
ジェレミー。
grails - Grailsでxmlをドメインオブジェクトに変換する
私は楽しみのためにプロジェクトに取り組んでいるgrails初心者です。私は次のようなクラスをシリアル化しています:
次のようにXMLSlurperを使用してクラスを逆シリアル化しようとしています。
私はこのオブジェクトを再構築しようとしています:
このxmlから:
まず、各ノードの値を取得する際に問題が発生します。def Seller = new Customer(name:sellerNode。@ username)を試しましたが、@ usernameは要素ではなく属性である必要があると想定しているため、機能しません。次に、このxmlを「手動で」解析する必要がありますか?このxmlを自動的に逆シリアル化するためのより良い方法はありませんか?
私はすでにいくつかの投稿を見て、これを含めました:XMLをGrailsドメインクラスにインポート しますが、ご覧のとおり、私のxmlにはこの投稿のxmlのような属性がありません。
ありがとう、
groovy - ユーザーエージェントを設定する方法:new XmlSlurper()。parse(URL)
Groovy/XmlSlurperを使用してWebサービスへのリクエストを開始しています。
リクエストがどのプロジェクトからのものかをウェブサイトに知らせるようにユーザーエージェントを設定したいと思います。
ユーザーエージェントを設定する方法は?
- XMLSlurperのコンストラクターには、このようなものはありません。
- setPropertyメソッドは面白そうに聞こえますが、GoogleはUAに関連するものを導きません。
- 別のライブラリを優先してXmlSlurperを放棄するようにコードを変更することは避けたいと思います。
xml - XmlSlurper/GPathを使用して大文字と小文字を区別しないxml要素値を見つける?
XmlSlurper を使用して XML を解析していて、xml 要素の値を見つける必要があります。ここでの課題は、xml ドキュメントの大文字と小文字が正しいかどうか常に確信できるとは限らないため、可能な方法で要素を見つける必要があることです。
例:
Elemの値を取得すると、次のようになります。
しかし、ケーシングが異なる場合にもそれを見つける必要があります..ケーシングが異なる場合にElemの値を見つけるために表現できる方法はありますか?
groovy - Groovyの名前空間を使用してXMLを適切に反復する
私は次のxmlコードを持っています:
次の疑似コードを使用してGroovyで検証したいこと:
しかし、データベースの応答に対して定義された値(名前など)を検証しようとするための構文、ロジックを正しく理解できないようです。config_item宣言が正しければ、Groovyクロージャについてよく理解していない可能性があります。また、XMLスラーパーまたはパーサーがより適切であり、違いが正確に何であるかを完全に特定することはできません。これが問題の適切な説明であることを願っています。
groovy - soapUI MockService の外部応答ファイルへの相対パスを使用するにはどうすればよいですか
私がしたこと
テスト中の 2 つのクライアント アプリケーションに特定のデータを提供するために、soapUI (3.6.1 無料版) モック サービスを使用しています。簡単な Groovy スクリプトを使用して、クライアント アプリケーションからの要求に基づいて特定のファイルから応答をフェッチするためのモック操作をセットアップしました。
モック応答の静的コンテンツは次のとおりです。
操作ディスパッチ スクリプト ペインの groovy は次のとおりです。
この例では、クライアント アプリケーションが文字列 CategoryA を含むモック サービスに要求を発行すると、soapUI によって返される応答はファイル ID_List_CategoryA.xml の内容です。
私が達成しようとしていること
これはすべて、groovy の絶対パスで正常に機能します。ここで、簡単に再展開できるように、soapUI プロジェクト ファイルと外部ファイルのコレクション全体をパッケージにプルしたいと考えています。soapUI について読んだことから、プロジェクトのリソース ルートの値を ${projectDir} に設定し、パスを次のように変更するのと同じくらい簡単になることを願っていました。
... soapUI プロジェクトの xml ファイルは C:/soapProject/ にあることに注意してください
これまでに試したこと
だから、それはうまくいきません。相対パスのバリエーションを試しました:
- ./Test_Files/ID_List_CategoryA.xml
- /Test_Files/ID_List_CategoryA.xml
- Test_Files/ID_List_CategoryA.xml
ある投稿では、soapUI が相対パスの目的でプロジェクト ファイルの親ディレクトリをルートと見なす可能性があることを示していたため、次のバリエーションも試してみました。
- ./soapProject/Test_Files/ID_List_CategoryA.xml
- /soapProject/Test_Files/ID_List_CategoryA.xml
- soapProject/Test_Files/ID_List_CategoryA.xml
どれもうまくいかなかったとき、Groovy スクリプトで ${projectDir} プロパティを使用しようとしましたが、そのような試みはすべて「そのようなプロパティはありません: クラスの mockService: Script[n]」エラーで失敗しました。確かに、それをしようとしたとき、私は本当に手探りでした。
この投稿やその他の情報を使用してみました: How do I make soapUI attachment paths relative?
...運がない。その投稿のソリューション コードで「test」を「mock」に置き換えると (他の変更の中でも)、より多くのプロパティ エラーが発生しました。
.. につながった
私が必要だと思うもの
この問題に関連して私が見つけた投稿はすべて、soapUI TestSuites に焦点を当てています。MockService 中心のソリューション、または少なくとも TestSuite とは対照的に MockService で異なる方法で処理する方法に光を当てるソリューションが本当に必要です。
どんな助けでも大歓迎です。ありがとう。マーク。
解決策 - GargantuChet提供
${projectDir} プロパティにアクセスしようとする問題を解決し、groovy スクリプトのスコープ内で新しい projectDir オブジェクトを定義して相対パスを使用できるようにするために、GargantuChetによって提案された変更を以下に示します。
groovy - WHERE句のようにXmlSlurperを使用して選択する
次のHTMLスニペットを前提として、属性がに等しいタグとmeta
属性がに等しいタグのコンテンツ属性のテキストを抽出する必要があります。Groovy:XMLSlurperの正しい構文で示されているものを試し、特定の属性を持つ要素を見つけましたが、 Groovy1.8.6では同じようには機能しないようです。name
description
meta
property
og:title
GPathでこれらを取得するためのクリーンな方法はありますか?
xml - ノードと文字列のリストを返すGroovy Node.depthFirst()?
ここで私が見逃している明らかなことを誰かが指摘してくれることを願っています。私はこれを何百回もやったような気がしますが、何らかの理由で今夜、これから起こる行動が私をループに投げ込んでいます.
パブリック API から XML を読み込んでいます。さまざまな子ノードも含む特定のノード (「本文」内のすべて) からすべてのテキストを抽出したいと考えています。簡単な例:
したがって、最終的には、目的のノード (ここでも「本文」) 内のツリーをトラバースし、含まれるすべてのテキストを自然な順序で抽出したいと考えています。簡単なので、この小さな Groovy スクリプトを作成します...
...これは、「メソッドのシグネチャがありません: java.lang.String.children()」で爆発します。だから私は「待って、何?私は気が狂ってしまうの?」と考えています。Node.depthFirst() は、ノードのリストのみを返す必要があります。「instanceof」チェックを少し追加すると、確かに、Node オブジェクトと String オブジェクトの組み合わせが得られます。具体的には、同じ行のエンティティ内にない行は、文字列として返されます。別名、"This contains" および "and" です。それ以外はすべてノードです (予想どおり)。
これは簡単に回避できます。ただし、これは正しい動作のようには見えません。誰かが私を正しい方向に向けてくれることを願っています。