Swift XML解析器随机删除空格

Skoua

我正在Swift中解析一个带有法语文本的大XML文件,当我从其中检索节点值时,会随机删除一些空白。

这是文件(开放源代码,超过5mb):https : //svn.code.sf.net/p/javacrim/code/littre/xml/a.xml

随机地,在强调字符之前删除空格。例如,这是XML的一行:

<dictScrap>Entre un substantif et un verbe. L'exhortation <oVar>à</oVar> combattre. L'encouragement <oVar>à</oVar> bien vivre. La disposition <oVar>à</oVar> plaisanter. La promptitude <oVar>à</oVar> faire. L'habileté <oVar>à</oVar> parler. La facilité <oVar>à</oVar> comprendre. La répugnance <oVar>à</oVar> venir. Le plaisir <oVar>à</oVar> obéir. La fermeté <oVar>à</oVar> soutenir la vérité. La honte <oVar>à</oVar> mentir.</dictScrap>

这是解析后的行:

Optional("Entre un substantif et un verbe. L\'exhortationà combattre. L\'encouragement à bien vivre. La disposition à plaisanter. La promptitude à faire. L\'habileté à parler. La facilité à comprendre. La répugnance à venir. Le plaisir à obéir. La fermeté à soutenir la vérité. La honte à mentir.")

请注意,第一个à之前的空白消失了,但其他空格没有消失。

<oVar>用编辑器删除了所有带有search-replace的内容,不需要这些内容,并且懒于尝试使用代码来实现。

我正在使用AEXML进行解析:https : //github.com/tadija/AEXML

这是我的代码,除了获取字符串并将其打印之外,它什么也不做:

if sense["dictScrap"].count > 0 {
    senseEntity.value = sense["dictScrap"].value
}

println(senseEntity.value)

谢谢你的帮助!

Skoua

因此,我查看了AEXML源代码,并发现了导致此问题的此函数:

func parser(parser: NSXMLParser, foundCharacters string: String) {
    currentValue += string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    currentElement?.value = currentValue
}

当我删除.stringByTramming...空格时,不再删除。

如果然后.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())在解析后的值上使用,则最终字符串看起来像我想要的那样。

谢谢大家!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章