1

使用Text.XML.Cursor,是否有一种方便的方法来选择与多个条件之一匹配的节点(如or函数)?

在以下示例中,如何获取所有<p class="myclass"> 和节点的游标(以正确的顺序)? <h1>

<div>
    <p></p>
    <div></div>
    <h1></h1>
    <hr>
    <p class="myclass"></p>
    <h1></h1>
</div>

extract :: Cursor -> [Cursor]
-- Returns 3 cursors [h1, p, h1]
4

1 回答 1

0

There's checkElementwhich 接受谓词。

checkElement :: Boolean b => (Element -> b) -> Axis

所以有了这个,并且知道你extract是一个Axis1

extract :: Axis
extract = checkElement yourPredicate
  where
    yourPredicate (Element name _ _) = any (== name) ["p", "h1"]`

那么添加类检查应该很容易;匹配构造函数中的第二个元素Element,查找class属性,然后检查其值是否myclass存在。


1 type Axis = Cursor -> [Cursor]

于 2017-05-31T16:08:44.537 回答