問題タブ [hxt]

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.

0 投票する
3 に答える
1222 参照

xml - 値のリストを抽出するための Haskell HXT

XPathと矢印を同時に使用してHXTを理解しようとしていますが、この問題をどのように考えるかについて完全に固執しています。次の HTML があります。

これを HXT XmlTree に抽出しました。私がやりたいことは、関数を定義することです(私は思いますか?):

として使用するとgetValues ["c1", "c2", "c3", "c4"]、次のようになります。

助けてください?

0 投票する
1 に答える
687 参照

xml - HXT-「ディープ」とは何ですか?

私はHXTの使い方を理解しようと多くの時間を費やしています。私はを使用して例に反対し続けdeepます。何をしdeepますか?

たとえば、このコードには次のものがあります。

もう一つの例:

0 投票する
2 に答える
1741 参照

haskell - Haskell HXT を IO の外で実行していますか?

これまで見てきたすべての例では、Haskell XML ツールキット HXT を使用runXしてパーサーを実行していました。runXIO モナド内で実行されます。この XML パーサーを IO 以外で使用する方法はありますか? 私には純粋な操作のように思えますが、なぜ私が IO の中にいることを余儀なくされているのか理解できません。

0 投票する
1 に答える
322 参照

xml - 矢印を折りたたんで一覧表示

HXTに問題がありますが、矢印については何かが足りないのではないかと思います。

私は次のようなXML構造を持っています

そして内部構造のような

矢印のステップで要素を収集する方法はありますか?

getXmlDataの再帰呼び出しでは、回答を収集してXmlListコンストラクターでラップする必要がありますが、用語を収集する方法がわかりません。現在、私は出力のいくつかの後処理(同じ名前で収集)でこれを達成していますが、より良い解決策が欲しいです。

0 投票する
1 に答える
411 参照

haskell - HXT: 左因数分解の非決定論的矢印?

私は Haskell の XML ツールボックス ( HXT ) を理解しようとしていますが、計算ツールとしての矢印を完全に把握していないように見えるため、どこかで壁にぶつかっています。

GHCiセッションを使用してもう少しよく説明したいと思っていた私の問題は次のとおりです。

したがって、Parse は、単純な XML ドキュメントに与えた矢印を適用する小さなヘルパー関数です。

別のヘルパー関数を定義します。今回は、指定された名前のノードの下にあるテキストを抽出します。

この関数の助けを借りて、&&&コンビネータを使用して 2 つの異なるノードのテキストをペアにし、それを次のようにコンストラクタに渡すのは簡単です。

ここで、私が理解できない部分が来ます: 私は左因数分解したい! ルートノードを 2 回extract呼び出します。getChildren代わりに、一度だけ呼び出したいです! だから私は最初にルートノードの子を取得します

それが問題かどうかを調べるために、たとえば isElem などの呼び出しの順序を変更しようとしたことに注意してください。しかし、現状では、これが機能しない理由がわかりません。Haskell wiki には「チュートリアル」という矢印があり、私がそれを理解した方法では、その方法でやりたいことを実行できるはず&&&です。つまり、2 つの計算の結果をペアにするために使用します。

それも機能しますが、「共有」したい結果がすでにある場合は、途中の谷ではなく、矢の連鎖の開始時にのみ. 通常の関数合成とアロー表記の考え方の違いに頭を悩ませているだけな気がします。私はどんな指針にも非常に感謝しています!(Haskell-wiki よりももう少し詳細な一般的な矢印のチュートリアルであっても。)

ありがとうございました!

0 投票する
1 に答える
344 参照

haskell - HXT 解析への状態の追加

HXT を使用した XML 解析から番号付き要素を生成する矢印を作成しようとしています。State モナドのように状態アローを使用する必要があるように思われますが、HXT パッケージにあるすべての例と、状態にアクセスするメソッド ( XmlState ) は IOStateArrow を使用しており、純粋なままにしておきたいと思います。 StateArrow を使用して、テスト プロセスを簡素化します。そのような亜種は存在しますか? そうでない場合、IO で Arrow を実行する必要なく、HXT 解析に状態を追加するにはどうすればよいでしょうか?

0 投票する
1 に答える
450 参照

haskell - HXT の Arrow のカウントとフィルタリング

XML を解析しようとしていますが、特定のノードから決定された数の子のみをフィルタリングして抽出したいと考えています。例えば:

そして、矢印を実行するgetChildren >>> myFilter 2と、ID が「a」と「b」のノードのみが返されます。

直感的には、追跡するにはステート アローを使用する必要がありますが、その方法がわかりません。

私はそれを自分でやろうとしましたが、それは私が望んでいるものとはまったく異なり、非常にエレガントに見えず、機能しません. 初期状態として整数パラメーターを使用して一連の矢印を実行し、runSLA次を定義しようとします。

しかし、もちろん を返すことはできませんNothing。XmlTree を返す必要があります。しかし、私は何も返したくありません!

そこにはおそらくもっと良い方法があります。手伝って頂けますか?

お時間をいただきありがとうございます。

0 投票する
1 に答える
305 参照

performance - HXT パフォーマンスの問題のデバッグ

HXT を使用して大きな XML データ ファイル (数百 MB) を読み込もうとしています。

私のコードにはどこかにスペースリークがありますが、見つけられないようです。ghc プロファイリング ツール チェーンに関する非常に限られた知識のおかげで、何が起こっているのかについて少し手掛かりがあります。

基本的に、ドキュメントは解析されますが、評価されません。

ここにいくつかのコードがあります:

コーパス ファイルを読み込もうとしていますが、構造は明らかに<corpus><sentence><word form="Hello"/><word form="world"/></sentence></corpus>.

非常に小さな開発コーパスでも、プログラムはそれを読み込むのに約 15 秒かかり、そのうち約 20% は GC 時間です (これは多すぎます)。

特に、多くのデータが DRAG 状態で長時間を費やしています。これはプロフィールです:

http://imgur.com/YC3jh

DRAGの犯人を監視しています。decodeDocument が頻繁に呼び出され、そのデータが実行の最後まで停止していることがわかります。

これは、decodeDocument のすべてをデータ構造 (SentenceおよびWord) に折りたたむことで簡単に修正でき、RT はこれらのサンクを忘れることができると思います。ただし、現在発生している方法は、オンラインで簡単に発生する可能性のあるモナドでの脱構築による評価を強制すると、最後 折り畳みが発生することです。これには理由が見当たらず、プログラムを厳格化しようとする私の試みはこれまでのところ無駄でした。誰かが私を助けてくれることを願っています:-)EitherIO

seqs とsを入れる場所が多すぎてわかりません$!…</p>

0 投票する
1 に答える
175 参照

haskell - HXT で失敗した Relax NG 検証からステータスを読み取る

Haskell での XML ファイルの検証は、HXTRelax NGで正常に機能しますが、結果を取得するにはどうすればよいでしょうか?

次のコードでは、XML ファイルxmlFilenameが Relax NG スキームに対して検証されますrngFilename。エラーの場合、 にエラーが出力されstderr、評価が続行されます。

エラーが発生した場合、hxt-relaxng のドキュメントvに従って、変数には次の情報が保持されます。

検証エラーの場合、ルートにステータス情報を含む空のドキュメントが[出力されます]

欠陥のあるドキュメントを含む結果のツリーは、実際にはstatus(and module) 属性を保持します。

今質問:

validateDocumentWithRelaxSchema検証エラーがあったかどうかの出力を確認するにはどうすればよいですか?

そのために使用できる定義済みの関数はありますか (ただし、まだ見つかりません)。

0 投票する
2 に答える
642 参照

haskell - グラフライブラリ用のxml-treeパーサー(Haskell)

グラフを操作するためのライブラリを作成しています。主なタスク-xml-treeの解析。木は次のように見えます

保存の構造:

xmlファイルからこの構造にデータを書き込む方法は?この種のxmlツリー(HXTライブラリ)のパーサーを作成できません