问题标签 [xml-conduit]
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.
haskell - xml-conduit - 结合 tagParsers
我一直在尝试用 xml-conduit 解析 XML 数据结构,经过一些学习后似乎可以工作。但我现在坚持的是以下内容。
给定标签解析器列表,我如何使用choose
它们来组合它们
虽然上述工作正常 - 如果我将常见模式重构为
我收到以下错误
在我看来,这forall o
部分变得专业化了——因此它forall
不再是一个,但这只是一个猜测。
从文档中xml-conduit
并且知道 Consumer 只是一个类型的同义词
编辑:
我尝试使用f
lambda 函数 - 这也不起作用。
编辑2:
ConduitErr.hs
foo.cabal
xml - 流解析xml而不知道子标签的顺序
我必须解析一些 xml,我决定使用 xml-conduit 来完成该任务并使用它的流式传输部分。
xml 的结构由包含元素及其出现频率的 xsd 文件给出。但不是他们预期的顺序。
如何使用 xml 结构的子级解析所有可能的重新排序Text.XML.Stream.Parse
?
问题
假设我们有一个 xml 描述,例如
那么两者<Root><A>atext</A><B>btext</B></Root>
和 <Root><B>btext</B><A>atext</A></Root>
都是此 xml 结构的有效实例。但是在流设置中解析需要一个顺序才能成功。
我想过使用类似的东西,parseRoot1 <|> parseRoot2
但后来我必须实现Alternative
实例并手动编写所有可能性,我真的不想这样做。
这是一个最小的示例 haskell 程序。
Example.hs
笔记
example.cabal
xml - xml-conduit 解析 xml 属性
解析 XMLxml-conduit
偶然发现了以下问题:当我有多个属性时,具有相同的基本名称但不同的前缀只有(词法)顺序中的第一个。
如果属性的前缀和非前缀版本都存在,我如何获取前缀值?
最小的非工作示例:
Main.hs
attr.cabal
html - How to ignore unclosed tags in XML or HTML?
I'm writing a parser in Haskell for the site using the packages Text.XML and Text.XML.Cursor.
There are unclosed tags and get an error:
Main.hs: Error parsing XML file dat.html: 29:1-29:8: Expected end element for: Name {nameLocalName = "br", nameNamespace = Nothing, namePrefix = Nothing}, but received: EventEndElement (Name {nameLocalName = "body", nameNamespace = Nothing, namePrefix = Nothing})
What to do? How to ignore such tags?
haskell - 不确定如何使用 Text.XML.Cursor 解析它
我正在尝试解析如下所示的 XML:
我想这样解析该信息:
我不知道该怎么做。我的第一个想法是做类似的事情element "h1" $| followingSibling &// element "tr" &/ content
,但这不起作用,因为它会捕获所有的 tr,即使是那些不“属于”我试图从中读取的表的,我不会无法知道哪些属性属于哪个集合。
我该如何解决这个问题?
xml - 在 XML 中使用命名空间等解析元素
这个问题是关于如何使用xmlns
属性等解析 xml 内容。我编写了代码来解析它的工作原理。我会很感激关于它是否可以做得更好的指针。
我有一个test.xml
如下的 XML 文件:
我使用以下代码编写了解析“SomeResult”内容的代码xml-conduit
:
中的输出ghci
:正确解析:
laxElement
定位内容的方法是SomeResult
好方法吗?如果有更好的方法,我将非常感谢这方面的指点。
此外,我需要反向进行 http 编码(在构建上述响应的请求时),其中内部主体被转义(如SomeResult
in下text.xml
)。这是在使用构建请求时默认处理的事情Text.XML
,还是我必须使用html-entities 之类的东西将内部主体显式转换为转义的 http ?
xml - haskell:xml过滤子树
我正在努力使用 haskell 删除一个 Element 及其所有子项。任务是从给定的 xml 文档中删除所有表格标签(也许我还没有理解游标的概念,或者它是我缺少的其他东西)。
我尝试了三种不同的方法:
- 具有遍历/过滤功能并使用新元素设置过滤值的镜头 -此处仅替换标签而不替换内容
- 使用光标访问表格元素 - 重置那里的内容并通过将光标向上遍历到文档根再次获取文档根 -没有过滤任何内容
- 递归过滤文档根的子节点 -没有过滤任何内容
工具
xml-conduit
xml-lens
ghc-8.0.1
输入 ( test.xml
)/输出
最小非工作示例
输出
haskell - 如何跳过 xml-conduit 中的元素
我必须处理相当大的 XML 文件,我想使用流 APIxml-conduit
来浏览它们并提取我需要的信息。在我的情况下,使用流xml-conduit
特别吸引人,因为我不需要来自这些文件的太多数据,而且我需要对其执行简单的聚合,因此管道是完美的。
现在,我并不总是知道文件的确切结构。文件是由世界各地不同版本的(有时是错误的)软件生成的,所以我不能强加模式。
但是,我知道我感兴趣的元素及其形状。但是,正如我所说,这些元素可以与其他元素以不同的顺序定位,等等。
我想,我需要的只是跳过所有我不感兴趣的元素,只考虑那些想要的元素。
我最初想写这样的东西:
但它不会编译,因为ignoreType
返回Maybe ()
xml-conduit
使用流 API时跳过所有“未知”标签的方法是什么?
haskell - 选择与多个条件之一匹配的节点 (OR)
使用Text.XML.Cursor
,是否有一种方便的方法来选择与多个条件之一匹配的节点(如or
函数)?
在以下示例中,如何获取所有<p class="myclass">
和节点的游标(以正确的顺序)? <h1>
xml - 使用 xml-conduit 如何解析 mediawiki 转储文件
我正在尝试使用 xml-conduit 解析 mediawiki 转储文件。我感兴趣的有两个标签,SiteInfo 和 Page。这是一个示例 xml:https ://gist.github.com/shadow-fox/7ff8df7a953e0ca9534bef45700686fe
我有一些零碎的东西,但不知道如何将它们联系在一起并获得想要的结果。我不知道如何获取命名空间标签中的标签示例中是否有超过 1 个属性:<namespace key="-2" case="case-sensitive">Media</namespace>
我希望最后的结果同时包含 siteinfo 和 wikidoc。