Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在Arrow进程上下文中提取多个元素_Xml_Haskell_Hxt - Fatal编程技术网

Xml 在Arrow进程上下文中提取多个元素

Xml 在Arrow进程上下文中提取多个元素,xml,haskell,hxt,Xml,Haskell,Hxt,我想解析以下示例XML文件,不带pickler模块 基础知识 福 100 酒吧 0 我的结局是: {-#语言箭头#-} 导入Text.XML.HXT.Core 数据组=组A组B派生显示 data GroupA=GroupA字符串派生显示 数据组B=组B字符串派生显示 readGroup::LA XmlTree组 readGroup=deep(isElem>>>hasName“Groups”)>>>获取儿童>>> proc root->do a>hasName“GroupA”>>>getChi

我想解析以下示例XML文件,不带pickler模块


基础知识
福
100
酒吧
0
我的结局是:

{-#语言箭头#-}
导入Text.XML.HXT.Core
数据组=组A组B派生显示
data GroupA=GroupA字符串派生显示
数据组B=组B字符串派生显示
readGroup::LA XmlTree组
readGroup=deep(isElem>>>hasName“Groups”)>>>获取儿童>>>
proc root->do
a>hasName“GroupA”>>>getChildren>>>
proc root->do
n>>hasName“Name”/>getText->hasName“Sum”/>getText->>hasName“GroupB”>>>getChildren>>>
proc root->do
n>>hasName“Name”/>getText->hasName“Sum”/>getText-
不幸的是,这不起作用。 如果我试图在
proc
上下文中只提取一个元素,它就会起作用。 但是尝试提取多个元素总是失败\返回空列表。我可能对这篇作文有误解

我使用
runLa(xreadDoc>>readGroups)

运行该示例,请尝试以下操作:

readGroup::LA XmlTree组
readGroup=deep(isElem>>>hasName“Groups”)>>>
proc root->do
a>>readGroupA->readGroupB->>hasName“GroupA”>>>
proc root->do
n>>isElem>>>hasName“Name”/>getText->isElem>>>hasName“Sum”/>getText->>hasName“GroupB”>>>
proc root->do
n>>isElem>>>hasName“Name”/>getText->isElem>>>hasName“Sum”/>getText-
当对
getChildren
的调用在
do
-块之外时,您甚至在进入
proc
之前就提交了一个子项。在
proc
中,您检查(例如)该子级是否有name
name
和name
Sum
。毫不奇怪,你没有发现任何孩子符合这些矛盾的要求

通过在内部移动
getChildren
,您可以为(例如)
n
s
遍历不同的子对象