Skip to content

Commit 0251949

Browse files
committed
Add HTMLParser initializer.
1 parent b8faa20 commit 0251949

2 files changed

Lines changed: 11 additions & 24 deletions

File tree

Swift-HTML-Parser/HTMLParser.swift

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,16 @@ public class HTMLParser {
7070
* @param[in] html HTML文字列
7171
* @param[in] error エラーがあれば返します
7272
*/
73-
public init(html: String, inout error: NSError?) {
74-
if html.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) > 0 {
73+
public init(html: String, encoding: UInt, option: CInt, inout error: NSError?) {
74+
if html.lengthOfBytesUsingEncoding(encoding) > 0 {
7575
self.htmlString = html
7676
var cfenc : CFStringEncoding = CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)
7777
var cfencstr : CFStringRef = CFStringConvertEncodingToIANACharSetName(cfenc)
7878

7979
var cur : [CChar]? = html.cStringUsingEncoding(NSUTF8StringEncoding)
8080
var url : String = ""
8181
var enc = CFStringGetCStringPtr(cfencstr, 0)
82-
let optionHtml : CInt = 1
82+
let optionHtml : CInt = option
8383

8484
if var ucur = cur {
8585
_doc = htmlReadDoc(UnsafePointer<CUnsignedChar>(ucur), url, enc, optionHtml)
@@ -92,26 +92,12 @@ public class HTMLParser {
9292
}
9393
}
9494

95-
public init(html: String, encoding : UInt, inout error: NSError?) {
96-
if html.lengthOfBytesUsingEncoding(encoding) > 0 {
97-
self.htmlString = html
98-
var cfenc : CFStringEncoding = CFStringConvertNSStringEncodingToEncoding(encoding)
99-
var cfencstr : CFStringRef = CFStringConvertEncodingToIANACharSetName(cfenc)
100-
101-
var cur : [CChar]? = html.cStringUsingEncoding(encoding)
102-
var url : String = ""
103-
var enc = CFStringGetCStringPtr(cfencstr, 0)
104-
let optionHtml : CInt = 1
105-
106-
if var ucur = cur {
107-
_doc = htmlReadDoc(UnsafePointer<CUnsignedChar>(ucur), url, enc, optionHtml)
108-
rootNode = HTMLNode(doc: _doc)
109-
} else {
110-
error = NSError(domain: "HTMLParserdomain", code: 1, userInfo: nil)
111-
}
112-
} else {
113-
error = NSError(domain: "HTMLParserdomain", code: 1, userInfo: nil)
114-
}
95+
public convenience init(html: String, inout error: NSError?) {
96+
self.init(html: html, encoding: NSUTF8StringEncoding, option: 1, error: &error)
97+
}
98+
99+
public convenience init(html: String, encoding : UInt, inout error: NSError?) {
100+
self.init(html: html, encoding: encoding, option: 1, error: &error)
115101
}
116102

117103
deinit {

Swift-HTML-Parser/main.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ let html =
2727

2828

2929
var err : NSError?
30-
var parser = HTMLParser(html: html, error: &err)
30+
let option = CInt(HTML_PARSE_NOERROR.value | HTML_PARSE_RECOVER.value)
31+
var parser = HTMLParser(html: html, encoding: NSUTF8StringEncoding, option: option, error: &err)
3132
if err != nil {
3233
println(err)
3334
exit(1)

0 commit comments

Comments
 (0)