gpt4 book ai didi

xml - Swift XML 解析器随机删除空格

转载 作者:可可西里 更新时间:2023-11-01 00:53:35 24 4
gpt4 key购买 nike

我在 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>用我的编辑器进行搜索替换,不需要这些,所以懒得尝试用代码来做。

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

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

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

println(senseEntity.value)

感谢您的帮助!

最佳答案

我对您的示例进行了一些测试,您对所提供的修复是正确的。

发生这种情况是因为 NSXMLParser 行为,我显然没有遇到过在创建 AEXML 时使用我的 XML 数据(没有像 'à' 这样的字符,这会导致 parser(_:foundCharacters:) 被多次调用)。

因此,此修复程序现已包含在 AEXML 中,感谢您的反馈!

关于xml - Swift XML 解析器随机删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com