Skip to content

Commit 377daa9

Browse files
author
Brian King
committed
Fix the prefix when namespace processing is disabled.
1 parent 567fd93 commit 377daa9

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

Foundation/NSXMLParser.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ internal func _NSXMLParserStartElementNs(_ ctx: _CFXMLInterface, localname: Unsa
319319

320320
}
321321

322-
let elementName: String = UTF8STRING(localname)!
322+
var elementName: String = UTF8STRING(localname)!
323323
var namespaceURI: String? = nil
324324
var qualifiedName: String? = nil
325325
if parser.shouldProcessNamespaces {
@@ -329,14 +329,17 @@ internal func _NSXMLParserStartElementNs(_ ctx: _CFXMLInterface, localname: Unsa
329329
qualifiedName = elementName + ":" + prefix
330330
}
331331
}
332+
else if let prefix = UTF8STRING(prefix) {
333+
elementName = elementName + ":" + prefix
334+
}
332335

333336
parser.delegate?.parser(parser, didStartElement: elementName, namespaceURI: namespaceURI, qualifiedName: qualifiedName, attributes: attrDict)
334337
}
335338

336339
internal func _NSXMLParserEndElementNs(_ ctx: _CFXMLInterface , localname: UnsafePointer<UInt8>, prefix: UnsafePointer<UInt8>?, URI: UnsafePointer<UInt8>?) -> Void {
337340
let parser = ctx.parser
338341

339-
let elementName: String = UTF8STRING(localname)!
342+
var elementName: String = UTF8STRING(localname)!
340343
var namespaceURI: String? = nil
341344
var qualifiedName: String? = nil
342345
if parser.shouldProcessNamespaces {
@@ -346,6 +349,9 @@ internal func _NSXMLParserEndElementNs(_ ctx: _CFXMLInterface , localname: Unsaf
346349
qualifiedName = elementName + ":" + prefix
347350
}
348351
}
352+
else if let prefix = UTF8STRING(prefix) {
353+
elementName = elementName + ":" + prefix
354+
}
349355

350356
parser.delegate?.parser(parser, didEndElement: elementName, namespaceURI: namespaceURI, qualifiedName: qualifiedName)
351357

0 commit comments

Comments
 (0)