SWXMLHash 解析数据对象

2024-01-01

我尝试与SWXMLHash为了模拟从网站下载的数据进行解析,我在 Playground 中创建了一个包含数据的文件。我收到的回复是URLSessionManager数据看起来类似于:

3c3f786d 6c207665 7273696f 6e3d2731 ...

但当然更长。

我读了如下:

guard let fileURL = Bundle.main.url(forResource: "xmlData", withExtension: "")
    else { fatalError("cannot load file")}
do {
    let xmlData = try Data(contentsOf: fileURL, options: .mappedIfSafe)
} catch {
    print(error)
}

我认为这有效,没有错误,如果我打印它返回的数据169735 bytes.

然后我尝试解析它(在do block):

let xml = SWXMLHash.parse(xmlData)
print(xml)

这返回\n,所以没有输出。

SWXMLHash提供了一个方法,该方法接受Data目的。 我怎样才能让它发挥作用?


根据SWXML哈希值 https://github.com/drmohundro/SWXMLHash/blob/master/Source/SWXMLHash.swift

public func parse(_ xml: String) -> XMLIndexer {
    guard let data = xml.data(using: options.encoding) else {
        return .xmlError(.encoding)
    }
    return parse(data)
}

public func parse(_ data: Data) -> XMLIndexer {
    let parser: SimpleXmlParser = options.shouldProcessLazily
        ? LazyXMLParser(options)
        : FullXMLParser(options)
    return parser.parse(data)
}

而你给一个String or a Data对象,在内部它会解析一个Data如果需要的话,对象进行转换。 这是一种安全的编码方式,这样所有初始化方法都通过同一个方法,并且修复它可以修复所有不同的初始化。

所以它应该有效。

您的问题是您的文件是十六进制数据的字符串表示形式,而不是原始十六进制数据文件。
解决方案是将 XML 字符串放入该文件中。

The Data(contentsOf: fileURL, options: .mappedIfSafe)会将该 XML 字符串转换为其十六进制表示形式。 然后它就会起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SWXMLHash 解析数据对象 的相关文章

随机推荐

  • 使用 AccountManager 通过 Google API 进行身份验证

    我已经为此苦苦挣扎了几天 我正在尝试通过 Android 的身份验证来调用 Google 日历AccountManager 我使用通常的方法检索身份验证令牌 AccountManager manager AccountManager get
  • 是否可以禁用 onclick 而不改变其功能?

    我知道禁用的方法onclick元素上的事件是 element onclick null 启用 element onclick function something or element addEventListener click me 这
  • 如何在 Google 跟踪代码管理器中添加 Adsense

    我想使用 Google 跟踪代码管理器来投放 Adsense 这样我还可以使用其他来源的其他广告 我在网站上找到的答案很少 但不足以理解 如果可以在 GTM 中使用 Adsense 代码 我将不胜感激 如果可以 如何 我也使用DFP 如果我
  • Phonegap - Android 初始屏幕 - 中心徽标

    有人可以建议我如何设置启动屏幕以实现交叉分辨率吗 我尝试将 png 文件的大小重新调整为不同的尺寸 并将图像放置在 ldpi mdpi hdpi 文件夹中 但图像看起来仍然被拉伸 压扁 具体取决于设备 有没有一种方法可以将徽标放置在屏幕中央
  • UIautomatorviewer 无法创建 java 虚拟机

    我开始在 Mac 上使用 Appium 和 Android Studio 当我尝试从命令行启动 uiautomatorviewer 时 出现以下错误 Djava ext dirs Users chris gill Library Andro
  • 代码中的“+=(s,e)”是什么意思?

    到底是什么 s e 在代码中 例子 this currentOperation Completed s e gt this CurrentOperationChanged 这是使用 Lambda 表达式附加事件处理程序的方法 例如 butt
  • 在 LESS CSS 中生成随机数?

    尝试搜索此内容 但考虑到语法 这很困难 有没有办法在 LESS 中生成随机数 我检查了文档 但没有看到任何内容 但想知道是否有人知道技巧或未记录的解决方案 通过 LESS Mixin 进行变化 通过使用 LESS mixin 来生成随机数
  • 在较长的序列中查找子序列

    我需要在其他大序列中找到一个序列 例如 1 3 2 3 存在于 1 3 2 3 4 3 and 5 1 3 2 3 有什么办法可以快速完成IEnumerable或与其他东西 与 dlev 类似 但这也可以处理 1 1 1 2 Contain
  • 如何访问 Pandas 系列中的最后一个元素

    让我们考虑以下数据框 import pandas as pd d col1 1 2 3 col2 3 4 5 df pd DataFrame data d 如果我想访问 pandas 系列中的第一个元素df col1 我可以简单地去df c
  • LinkedBlockingQueue 具有快速 contains(Object o) 方法?

    简而言之 我正在编写一个需要BlockingQueue实现既提供 FIFO 添加 删除 又提供快速contains方法 我将其称为 TON LinkedBlockingQueue让我大部分时间都到了那里 但看起来它contains方法以线性
  • 如何更改/覆盖 Vuetify js 中禁用字段的默认颜色?

    默认情况下 vuetify 对禁用的文本字段 项目应用浅灰色阴影 我如何将这种颜色覆盖为我想要的颜色 目前我正在使用禁用选择器 disabled color 000000 important 这仅有助于更改文本字段文本颜色的颜色 我的表单中
  • C 的 strtok() 和只读字符串文字

    char strtok c har s1 const char s2 重复调用此函数将字符串 s1 分解为 标记 即 字符串被分成子字符串 每个都以 0 结尾 其中 0 替换任何字符 包含在字符串 s2 中 第一次通话 使用要标记为 s1
  • Android - 如何以编程方式将证书存储在密钥库中?

    我正在制作一个金融交易 Android 应用程序 它需要 SSL 身份验证 我成功地完成了它 Android 和 Tomcat 之间的握手 我使用 keytool 和 openSSL 生成服务器和客户端证书 Tomcat 证书格式为 JKS
  • HTTP_HOST 服务器变量是否始终已定义?

    是服务器变量HTTP HOST总是为所有服务器定义 或者例如在 IIS 中使用其他名称定义 甚至根本没有定义 另外 该值总是被定义的 或者某些主机没有定义该值 还有其他方法可以检索该值吗 引用手册 HTTP HOST 是 Contents
  • 在多面 ggplot 中自动勾选最大值和最小值

    我试图在多面 ggplot 中标记每个 x 轴的最大值和最小值 我有几个具有不同 x 尺度和相同 y 尺度的面 并且 x 轴刻度标签相互重叠 我正在寻找一种方法来标记每个方面的最小值和最大值 而不是手动确定每个方面 x 轴的限制和中断 使用
  • 如何在 java 正则表达式中转义美元和大括号(即 ${title})?

    即你如何做到这一点 String string Sample string with title to be inserted string replaceAll title title 以下所有情况都会导致错误 string replac
  • 用最少的代码字符创建、排序和打印 100 个随机整数的列表

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 您可以编写最少的代码来创建 排序 升序 和打印 100 个随机正整数的列表 我所说的最少代码量
  • 如何减少 TensorFlow 循环中的内存消耗?

    我在 TensorFlow 中有一个循环 如下所示 with tf device gpu 1 losses for target output in zip targets lstm outputs logits tf matmul W o
  • 输入触发按键事件两次

    这个问题之前已经被问过 回答过 大部分 但是我尝试了三件事来阻止事件冒泡 但没有任何效果 return false e stopPropagation e preventDefault 返回 false 应该照顾其他两个 对吗 这是 HTM
  • SWXMLHash 解析数据对象

    我尝试与SWXMLHash为了模拟从网站下载的数据进行解析 我在 Playground 中创建了一个包含数据的文件 我收到的回复是URLSessionManager数据看起来类似于 3c3f786d 6c207665 7273696f 6e