无法从解析中获取下标文本 html

Can't get subscript text, from parsing html

我正在解析一个无机化合物的网站,需要获取它的化学式。

let data = NSData(contentsOf: URL(string: "https://en.wikipedia.org/wiki/Gold(III)_bromide")!)
let doc = TFHpple(htmlData: data as! Data)

if let elements = doc?.search(withXPathQuery: "//*[@class='selflink']/text()") as? [TFHppleElement] {
    for element in elements {
        print("------")
        print(element.content)
    }
}

它打印出 "AuBr" 但我需要它来打印整个公式 "AuBr3"

这是我从中获取公式的 html 代码:

我怎样才能打印出最后带有 3 的整个公式?

鉴于以下 HTML 来自 Wiki 页面:

<tr>
  <td>
    <div style="padding:0.1em 0;line-height:1.2em;"><a href="/wiki/Chemical_formula" title="Chemical formula">Chemical formula</a></div>
  </td>
  <td>AuBr<sub>3</sub></td>
</tr>

下面的 XPath 表达式

string(//tr[td[1]/div/a = "Chemical formula"]/td[2])

将return:

> xmllint --xpath 'string(//tr[td[1]/div/a = "Chemical formula"]/td[2])' ~/test.html
AuBr3

尝试SwiftSoup

解析你的 html:

let document = try SwiftSoup.parse("<li><strong class='selflink'>AuBr<sub>3</sub></strong></li>")

let selflinkElements = try document.getElementsByClass("selflink")

print(selflinkElements.get(0).tagName())//print "strong"

print(selflinkElements.get(0).text())//print "AuBr3"

print(selflinkElements.get(0).html())//print "AuBr<sub>3</sub>"