首页 > 解决方案 > 在 XMLParser 中识别 XML 字符串并将其格式化为可读格式

问题描述

我在 Swift 中工作,我有一组数据可以编码为这样的字符串:

<CONTAINER><Creator type="NSNull"/><Category type="NSNull"/><UMID type="NSArray"><CHILD>d1980b265cbd415c90f5d5f04efcb5df</CHILD><CHILD>7e0252c137c249fc92bd0f844effe27f</CHILD></UMID><Channels type="NSNumber">1</Channels></CONTAINER>

我正在寻找一种将这个字符串格式化为带有缩进的 XML 的方法,这样我就可以使用 XMLParser 正确地读取它,而目前它还没有。我想 NSNull 是当对象为空时,我只是没有看到这种格式,所以我不知道要搜索什么。它可以更接近 Dictionary 对象吗?如果是这样,我也很乐意将其格式化。

我还尝试从数据创建 XMLDocument,但它不修复格式。

编辑:

我想添加更多信息来帮助澄清我正在尝试做的事情。上面的这个字符串来自文件中的一段加密元数据。在我的代码中,我识别出已加密的数据块,然后对其进行解密,然后将该数据转换为字符串。值得注意的是,字符串最终在每个有效字符之间都有空字符,但我将它们去掉并以这个字符串结尾。

将此字符串复制到 XML 验证器中确认它是有效的 XML。令我困惑的是它的格式,其中它具有对象类型,例如 NSNull 和 NSNumber。我的帖子最初是希望识别这种格式。它似乎不仅仅是 XML。

作为对一些评论的回应,我将 XML Parser 委托与其他 XML 字符串一起使用,并对它的工作原理有基本的了解。我最初应该提到这一点,而是说 XML Parser 不能识别其中的任何这些元素或字符串。

更新:

问题最终是每个有效字符之间的空字符。去掉这些,然后通过 XML Parser 运行它效果很好。谢谢大家。

标签: swiftmacosxml-parsingnsxmlparserxmldocument

解决方案


推荐阅读