问题标签 [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 投票
1 回答
433 浏览

xml - Haskell 读取 CSV 文件 -> 从 url 加载 XML 文件 -> 再次写出 CSV 文件

我在尝试着

  1. 加载 CSV 文件
  2. 从文件中读取 ID
  3. 为每个 Id 加载一个外部 xml 文件
  4. 从 XML 中读取一些名称
  5. 将 ID 和名称写入新的 CSV 文件

我是 Haskell 的新手,真的很想学习它,我还处于理解的复制和粘贴阶段。我自己找到了每个部分的教程,但我很难将它们结合起来。

CSV 很简单,例如:

我使用Cassava读取 CSV 并使用HandsomeSoup读取 XML。

在这里,我尝试读取 id,加载 xml 并至少从 xml 打印名称。

我认为当我调用 getPlaceNames 并返回名称时我做错了。我什至不确定是否应该在 getPlaceNames 中使用“do”语句。

错误说

但这可能只是我做错的一件事,因为我对单子和绑定缺乏了解。

任何帮助表示赞赏,即使它只是指向正确文档的指针。

干杯

比约恩

0 投票
1 回答
210 浏览

html - 使用 Haskell 中的箭头和 HXT 从 Html 表中的 s 记录

希望使用 HXT 从格式良好的 HTMl 表中的表中提取记录。我已经查看了一些关于 SO 和 HXT 文档的示例,例如:

我的问题是:

我想通过已知的 id 唯一地标识一个表,然后为该表中的每个 tr 创建一个记录对象并将其作为记录列表返回。

这是我的 HTML

这是我正在尝试的代码,以及两种不同的解析方法。首先,进口...

我想要的是 Rockrecs 的列表,例如来自...

这是我的第一种方法,它在我返回一堆 [XMLTree] 后在 runLA 上使用绑定。也就是说,我进行第一次解析只是为了得到正确的表,然后在第一次抓取之后处理树行。

尝试 1

这有点工作。我需要按摩一下,但可以让它运行......

这是第二种方法,灵感来自 https://wiki.haskell.org/HXT/Practical/Simple1。在这里,我认为我依赖于 {-# LANGUAGE Arrows -} 中的某些内容(巧合的是,这打破了我对上面 rec 的列表理解),以使用 proc 函数在更具可读性的 do 块中执行此操作。也就是说,我什至无法编译它的最小版本:

尝试 2

编辑

类型问题,回应亚历克的以下评论

结束编辑

即使我没有选择元素,我也无法运行上述内容。我也有点困惑,我应该如何做一些事情,比如将第一个 td 放在 rockName 中,将第二个 td 放在 rockFav 中,如何在这些上包含一个迭代器(假设我有很多 td 字段,而不是只有 2 个。)

关于如何更轻松地做到这一点的任何进一步的一般提示。

0 投票
0 回答
70 浏览

html - 获取所有元素的组合文本

我的尝试片段(使用 HXT 和 HandsomeSoup):

输出:

期望的输出:

本质上,我正在寻找类似text()jQuery 的功能。

Edit2:在 jQuery 中,它实际上是单行的:

0 投票
1 回答
47 浏览

haskell - 如果我添加另一行函数,Haskell 的 hxt 会失败

我正在尝试使用 Haskell 的 hxt 包解析 COLLADA 文件。

我一直做得很好,但我遇到了一个奇怪的错误(或者更有可能是我的错误)。

我有一个看起来像这样的箭头:

添加行

然而,靠近底部会使整个箭头失效。

无论我返回什么,都会发生这种情况,即使我返回的是原件x

这是我的atTag功能:

这是我试图解析的示例 COLLADA 文件: https ://pastebin.com/mDSTH2TW

为什么添加一条线会完全改变箭头的结果,而它根本不应该做任何事情?

0 投票
0 回答
44 浏览

css - 使用 hxt 选择包含 ':' 的 rss 标签

我正在尝试解析一些看起来像

当我尝试

我明白了

我觉得这可能与 hxt 将冒号读取为 HandsomeSoup css 选择器有关,但我对 css 知之甚少。有什么办法可以逃避它或我错过了什么?

0 投票
1 回答
73 浏览

haskell - Hxt 和解析可选元素

我正在努力尝试在以下 xml 片段中使用 HXT 解析可选元素:

我使用 Maybe 来表示 defaultType 元素:

我正在解析 accountBankingInfo 元素,如下所示:

它可以编译,但是当我解析文件时,没有返回任何 BankingInfo。如果我更改 BankingInfo 类型以删除 defaultType 并且不用担心解析该元素,那么一切都会成功。

有没有一种简单的方法来处理 XML 中的可选元素并将其转换为 Maybe x?

0 投票
2 回答
89 浏览

haskell - HXT:基于列表向树中添加元素

我正在努力使用 HXT 库中的箭头根据列表(下面带有 mapM 的行)在树中生成元素。

该程序不会编译,我得到以下信息:

我尝试用 += 的变体替换 mapM,但我对 Arrows 中的映射没有很好的直觉。任何指针?

0 投票
0 回答
52 浏览

haskell - 使用 HXT 将整个 XML 文档写入 String

我试图弄清楚如何使用HXT执行一些 XML 转换,但我不知道如何将整个文档输出到字符串。虽然文档显示了如何使用readDocumentand writeDocument,但这些运行在 中IO,我试图弄清楚如何进行纯粹的转换。

(顺便说一句:为什么这么多 HXT 被定义为不纯函数?在我看来,Haskell 的主要优点之一是编译器可以保证函数的纯度。如果我不关心这一点,我本可以完成我的 XML 目标已经通过用另一种语言编写我的应用程序来实现。)

我已经弄清楚如何使用 HXT 读取 XML 字符串:

正如人们所看到的,这正如预期的那样有效。

接下来,我想写XmlTree回 a String

这是我问题的核心:元素在哪里?foo

为什么那个箭头不往返?为什么没有输出"<foo><bar>baz</bar></foo>"


为了排除故障,我尝试打印 Haskell 表示:

在这个表示中,最外面的foo元素仍然存在。

也可以通过打印树来证明这一点:

同样,该foo元素仍然存在似乎很清楚。

如何在保留整个文档(包括根目录)XmlTree的同时序列化一个 to ?String

0 投票
0 回答
43 浏览

xml - 如何使用 Haskell 将 XML 作为对象读取并写入 MySQL

我在路径位置有几个以下格式的 XML 文件:

在此处输入图像描述

我想读取所有这些 XML 文件并创建 Group 和 Member 数据对象并使用 Haskell 将它们保存到 MySQL DB(我知道我需要使用 HXT 和 HDBC 库,但我对如何使用它们感到困惑)。虽然有读取 XML 的示例,但它们没有显示如何遍历对象以保存到 DB。

数据库结构:

提前致谢

0 投票
1 回答
59 浏览

haskell - 使用 HXT 修改 XML

我正在尝试修改以下形式的 XML 文件:

我要修改节点的内容<string>https://s3.xyz.amazonaws.com/xyz/xyz.ipa</string>

我可以使用以下内容找到相关的兄弟节点

但我似乎无法选择关联的兄弟节点(尝试followingSiblingAxismoveUp >>> getChildren),这将允许我操作所需的节点。NavigatableTree与和之间的区别是否有问题NTree?我所在的show节点NTree (XText "software-package") []]

如果任何答案假设对箭头的接触非常有限,那真的会对我有所帮助。

谢谢。