Skip to content

Commit 4dfb8a8

Browse files
committed
Updated for Swift 1.1
1 parent 04d64c1 commit 4dfb8a8

2 files changed

Lines changed: 41 additions & 45 deletions

File tree

HTMLNode.swift

Lines changed: 32 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ class HTMLNode {
4141
* 次ノード
4242
*/
4343
var next : HTMLNode? {
44-
if let n : UnsafePointer<xmlNode> = node?.next {
45-
if n {
44+
if let n : UnsafeMutablePointer<xmlNode> = node?.next {
45+
if n != nil {
4646
return HTMLNode(doc: doc, node: n)
4747
}
4848
}
@@ -54,7 +54,7 @@ class HTMLNode {
5454
*/
5555
var child : HTMLNode? {
5656
if let c = node?.children {
57-
if c {
57+
if c != nil {
5858
return HTMLNode(doc: doc, node: c)
5959
}
6060
}
@@ -72,7 +72,7 @@ class HTMLNode {
7272
* タグ名
7373
*/
7474
var tagName : String {
75-
if node {
75+
if node != nil {
7676
return ConvXmlCharToString(self.node!.name)
7777
}
7878
return ""
@@ -82,9 +82,9 @@ class HTMLNode {
8282
* コンテンツ
8383
*/
8484
var contents : String {
85-
if node {
85+
if node != nil {
8686
var n = self.node!.children
87-
if n {
87+
if n != nil {
8888
return ConvXmlCharToString(n.memory.content)
8989
}
9090
}
@@ -98,7 +98,7 @@ class HTMLNode {
9898
init(doc: htmlDocPtr = nil) {
9999
self.doc = doc
100100
var node = xmlDocGetRootElement(doc)
101-
if node {
101+
if node != nil {
102102
self.node = node.memory
103103
}
104104
}
@@ -107,7 +107,7 @@ class HTMLNode {
107107
self.doc = doc
108108
self.node = node.memory
109109

110-
if let type = HTMLNodeType.fromRaw(tagName) {
110+
if let type = HTMLNodeType(rawValue: tagName) {
111111
nodeType = type
112112
}
113113
}
@@ -118,13 +118,11 @@ class HTMLNode {
118118
* @return 属性名
119119
*/
120120
func getAttributeNamed(name: String) -> String {
121-
for var attr : xmlAttrPtr = node!.properties; attr; attr = attr.memory.next {
122-
if attr {
123-
var mem = attr.memory
121+
for var attr : xmlAttrPtr = node!.properties; attr != nil; attr = attr.memory.next {
122+
var mem = attr.memory
124123

125-
if name == ConvXmlCharToString(mem.name) {
126-
return ConvXmlCharToString(mem.children.memory.content)
127-
}
124+
if name == ConvXmlCharToString(mem.name) {
125+
return ConvXmlCharToString(mem.children.memory.content)
128126
}
129127
}
130128

@@ -136,20 +134,20 @@ class HTMLNode {
136134
* @param[in] tagName タグ名
137135
* @return 子ノードの配列
138136
*/
139-
func findChildTags(tagName: String) -> HTMLNode[] {
140-
var nodes : HTMLNode[] = []
137+
func findChildTags(tagName: String) -> [HTMLNode] {
138+
var nodes : [HTMLNode] = []
141139

142140
return findChildTags(tagName, node: self.child, retAry: &nodes)
143141
}
144142

145-
func findChildTags(tagName: String, node: HTMLNode?, inout retAry: HTMLNode[] ) -> HTMLNode[] {
146-
if node {
147-
for n in node! {
148-
if n.tagName == tagName {
149-
retAry.append(n)
143+
func findChildTags(tagName: String, node: HTMLNode?, inout retAry: [HTMLNode] ) -> [HTMLNode] {
144+
if let n = node {
145+
for curNode in n {
146+
if curNode.tagName == tagName {
147+
retAry.append(curNode)
150148
}
151149

152-
findChildTags(tagName, node: n.child, retAry: &retAry)
150+
findChildTags(tagName, node: curNode.child, retAry: &retAry)
153151
}
154152
}
155153
return retAry
@@ -165,18 +163,16 @@ class HTMLNode {
165163
}
166164

167165
func findChildTag(tagName: String, node: HTMLNode?) -> HTMLNode? {
168-
if node == nil {
169-
return nil
170-
}
171-
172-
for curNode in node! {
173-
if tagName == curNode.tagName {
174-
return curNode
175-
}
166+
if let nd = node {
167+
for curNode in nd {
168+
if tagName == curNode.tagName {
169+
return curNode
170+
}
176171

177-
if let c = curNode.child {
178-
if let n = findChildTag(tagName, node: c) {
179-
return n
172+
if let c = curNode.child {
173+
if let n = findChildTag(tagName, node: c) {
174+
return n
175+
}
180176
}
181177
}
182178
}
@@ -185,7 +181,7 @@ class HTMLNode {
185181
}
186182
}
187183

188-
extension HTMLNode : Sequence {
184+
extension HTMLNode : SequenceType {
189185
func generate() -> HTMLNodeGenerator {
190186
return HTMLNodeGenerator(node: self)
191187
}
@@ -194,15 +190,15 @@ extension HTMLNode : Sequence {
194190
/**
195191
* HTMLNodeGenerator
196192
*/
197-
class HTMLNodeGenerator : Generator {
193+
class HTMLNodeGenerator : GeneratorType {
198194
var node : HTMLNode?
199195

200196
init(node: HTMLNode?) {
201197
self.node = node
202198
}
203199

204200
func next() -> HTMLNode? {
205-
var temp = node?
201+
var temp = node
206202
node = node?.next
207203
return temp
208204
}

HTMLParser.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
*/
55
import Foundation
66

7-
func ConvXmlCharToString(str: UnsafePointer<xmlChar>) -> String {
8-
if str {
9-
return String.fromCString(UnsafePointer<CChar>(str))
7+
func ConvXmlCharToString(str: UnsafePointer<xmlChar>) -> String! {
8+
if str != nil {
9+
return String.fromCString(UnsafeMutablePointer<CChar>(str))
1010
}
1111
return ""
1212
}
@@ -48,16 +48,16 @@ class HTMLParser {
4848
var cfenc : CFStringEncoding = CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)
4949
var cfencstr : CFStringRef = CFStringConvertEncodingToIANACharSetName(cfenc)
5050

51-
var cur : CChar[]? = html.cStringUsingEncoding(NSUTF8StringEncoding)
52-
var url : CString = ""
53-
var enc : CString = CFStringGetCStringPtr(cfencstr, 0)
51+
var cur : [CChar]? = html.cStringUsingEncoding(NSUTF8StringEncoding)
52+
var url : String = ""
53+
var enc = CFStringGetCStringPtr(cfencstr, 0)
5454
let optionHtml : CInt = 1
5555

5656
if var ucur = cur {
57-
var temp : CMutablePointer<CChar> = &ucur
58-
var aaa = UnsafePointer<CUnsignedChar>(temp.value)
59-
_doc = htmlReadDoc(aaa, url, enc, optionHtml)
57+
_doc = htmlReadDoc(UnsafePointer<CUnsignedChar>(ucur), url, enc, optionHtml)
6058
rootNode = HTMLNode(doc: _doc)
59+
} else {
60+
error = NSError(domain: "HTMLParserdomain", code: 1, userInfo: nil)
6161
}
6262
} else {
6363
error = NSError(domain: "HTMLParserdomain", code: 1, userInfo: nil)

0 commit comments

Comments
 (0)