git.iko.soy/typeable/xml-lens
on master help sign in
add ell
commitd1790efb444984e3ffdc3423aac2093fd2cf05aa authorfumieval <fumiexcel@gmail.com> dateTue 16 Jul 2013, 09:51 (13 years ago) parent90ded18
2 files changed+14−5
Text/XML/Lens.hs+11−1 xml-lens.cabal+3−4
Text/XML/Lens.hs+11−1
@@ -16,6 +16,7 @@ module Text.XML.Lens (
1616 -- ** Names
1717 , name
1818 , el
19+ , ell
1920 -- ** Attributes
2021 , attributeIs
2122 , attributeSatisfies
@@ -45,6 +46,9 @@ module Text.XML.Lens (
4546 -- * Lenses for 'Instruction'
4647 , _instructionTarget
4748 , _instructionData
49+ -- * Reexports
50+ , module Control.Lens
51+ , module Text.XML
4852 ) where
4953import Text.XML
5054import Control.Lens
@@ -136,7 +140,7 @@ attribute n = attrs . at n
136140-- | Traverse itself with its all children.
137141entire :: Traversal' Element Element
138142entire f e@(Element _ _ ns) = com <$> f e <*> traverse (_Element (entire f)) ns where
139− com (Element n a _) ns = Element n a ns
143+ com (Element n a _) = Element n a
140144
141145-- | Traverse elements which has the specified name.
142146el :: Name -> Traversal' Element Element
@@ -144,6 +148,12 @@ el n f s
144148 | elementName s == n = f s
145149 | otherwise = pure s
146150
151+-- | Traverse elements which has the specified *local* name.
152+ell :: Text -> Traversal' Element Element
153+ell n f s
154+ | nameLocalName (elementName s) == n = f s
155+ | otherwise = pure s
156+
147157attributeSatisfies :: Name -> (Text -> Bool) -> Traversal' Element Element
148158attributeSatisfies n p = filtered (maybe False p . preview (attrs . ix n))
149159
xml-lens.cabal+3−4
@@ -1,7 +1,7 @@
11name: xml-lens
2−version: 0.1.2
2+version: 0.1.3
33synopsis: Lenses, traversals, prisms for xml-conduit
4−description:
4+description: Lens-based DOM selector
55homepage: https://github.com/fumieval/xml-lens
66license: BSD3
77license-file: LICENSE
@@ -20,5 +20,4 @@ library
2020 default-language: Haskell2010
2121 ghc-options: -Wall
2222 exposed-modules: Text.XML.Lens
23− -- other-modules:
24− build-depends: base ==4.*, lens >= 3.8 && < 4.2, containers >= 0.4.0 && < 0.6, text == 0.11.*, xml-conduit >= 1.1
23+ build-depends: base ==4.*, lens >= 3.8 && < 4.2, containers >= 0.4.0 && < 0.6, text == 0.11.*, xml-conduit >= 1.1 && < 1.3