Например, у меня есть div
, содержащий несколько p
с и другие, и я хочу сопоставить p
с show.
defShow :: NTree XNode -> String
defShow (NTree (XTag div' _) contents)
| show div' == "div" = intercalate "\n" $ map defShow contents
defShow p@(NTree (XTag p' []) _)
| show p' == "p" = show p
defShow x = error $ show x
Но с данными тестирования, как показано ниже, это не работает.Я имею в виду весь узел, а не только узел p
.
NTree (XTag "div" [NTree (XAttr "class") [NTree (XText "refsect2") []]])
[ NTree (XText "\n") []
, NTree (XTag "p" []) [SOME_TEXT_NODE] ]