問題タブ [scala-xml]
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.
scala - scala.xml.Attributeのシーケンスをscala.xml.MetaDataに変換する方法は?
ここに追加することはあまりありません。もちろん、命令型のコーディングスタイルでなんとかしてそれを成し遂げることはできますが、これをうまく解決する方法に興味があります。
scala - Scala マクロでの XML リテラルのマッチング
マクロを使用して Scala XML リテラルを変換したいと考えています。(XML を使用した文字列リテラルではなく、実際の XML リテラル)。私の知る限り、XML リテラルは実際には AST レベルで言語に組み込まれておらず、パーサーで脱糖されています。興味深いことに、これはうまくいきます:
しかし、明らかに、任意の xml をそのように一致させることは不可能であるため、これはまったく役に立ちません。何かのようなもの
パターン内で同じ変数を 2 回バインドする必要があるため、機能しません。
このような xml リテラル式のツリーを出力すると、実際には脱糖バージョンが得られます。例えば。
しかし、これを一致させようとすると失敗します:
私は混乱しています!私の質問は: scala マクロで任意の xml リテラルを確実に一致させる方法はありますか? さらに: 定数 xml の準引用符でサポートされているのに、desugared 値ではサポートされていないのはなぜですか?
xml - scala 文字列から scala.xml.Elem
文字列を XML に変換する必要がある
scala - 要素を最小化せずに HTML を解析する + 変換
ユーザーが提供した HTML を受け取り、それを別の HTML コードに変換する Web アプリケーション用のプラグインを作成しています。私はほとんどの場合、指定されたクラス/コンテンツ (「ディレクティブ」) を持つすべての要素を見つけて、それを別のものに書き換えたいと考えています。私は Scala 2.11.1 と TagSoup パーサーを使用して、XML に適していないコードを処理しています。
現時点での私の主な問題は、呼び出しがXML.parseString("<div></div>")
yield することです:
このタグを最小化しないままにしたいので、この動作は結果のページ (つまりiframe
、s、 s など) を文字化けさせます。div
読み込み段階でこの動作を回避する方法はありますか?
2 番目の問題は、TagSoup に関連しています。次のようなコード ブロックを解析する場合:
TagSoup は次のように解析します。
これらの問題を回避するためにできることはありますか? <script>
これまでのところ、すべての要素を最小化されないように書き換えたり、タグのコンテンツからすべてのエンティティを削除したりするなど、「厄介な」ソリューションしか思いつきませんでした。
TagSoup の解析は次のように行われます。
scala - 2 つのタグのいずれかに一致するように scala.xml に指示できますか?
body \\ "div"
「div」タグにbody \\ "p"
一致し、「p」タグに一致します。
しかし、「div」タグと「p」タグをすべて一致させたい場合はどうすればよいでしょうか。scala.xml の 1 つの式で可能ですか?
そうでない場合、ドキュメント内のすべての「div」タグと「p」タグを出現順に繰り返す別の方法はありますか?
scala - Scala パターン マッチングを使用して、コンテンツに関係なく、特定の名前の XML 要素を抽出する
次の XML 要素がある場合 --
-- すべての s に一致するパターンを作成するにはどうすればよい<bar/>
ですか? たとえば、次のことを試しました。
ただし、これは空のみに一致します。
そして、コンテンツのプレースホルダーを許可すると:
これは非空のみに一致します。
もちろん、XML リテラルをあきらめて、ただ書くこともできます。
しかし、もっと賢い方法があるに違いないようです。
xml - Scala の XML ファイルに新しい要素を置き換えるのではなく追加または追加する
私のscalaコードは現在、xmlファイルのセクション全体を、追加している新しいタグに置き換えることになります。タグを ClientConfig の子として一度だけ追加したいのですが、このセクションにあるすべてのタグをそれ自体に置き換えます。
ここで、host=bob と env=flat は以前に定義されており、addNewEntry は次のように定義されています。
それが生成するxmlは
代わりに、最後の3つの子がすでにファイルに存在していたこのような ClientConfig の単一の子として追加したい
私は何をしますか?たとえば、pythonには単純な挿入メソッドがあります