我想知道,我怎么能和HXT分开一个字?例如:
我有那个->
{-# LANGUAGE Arrows, NoMonomorphismRestriction #-}
import Text.XML.HXT.Core
import System.Environment --para uso do getArgs
data Class = Class { name ::String }
deriving (Show,Eq)
main = do
[src]<- getArgs
teams <- runX(readDocument [ withValidate no] src >>> getClass)
print teams
atTag tag = deep (isElem >>> hasName tag)
getClass = atTag "owl:Class" >>>
proc l -> do
className <- getAttrValue "rdf:about" -< l
returnA -< Class { name = className }我想把ClassName这个词分开!因为那个程序(团队)的结果,给了我一套超链接网站(http:// .)!(由于XML文件)有人能给我一些解决这个问题的提示吗?谢谢!
发布于 2014-04-06 00:30:55
您可以使用包splitOn的函数拆分
{-# LANGUAGE Arrows, NoMonomorphismRestriction #-}
import Text.XML.HXT.Core
import Data.List.Split (splitOn)
...
getClass = atTag "owl:Class" >>>
proc l -> do
className <- getAttrValue "rdf:about" -< l
returnA -< Class { name = splitOn "#" className !! 1 }在ghci中的例子:
> import Data.List.Split
> let className = "http://www.xfront.com/owl/ontologies/camera/#Window"
> splitOn "#" className !! 1
Loading package split-0.2.2 ... linking ... done.
"Window"如果所有的URL中只有一个"#“,那么上面的代码就可以工作了。如果它们比较复杂,您可以查看包帕秒。
https://stackoverflow.com/questions/22887753
复制相似问题