INI Parsing Components
XPCOM contains components for parsing and writing INI style files where key value pairs are split into names sections. There are three different entry points available:
nsINIParseris a component accessible from C++ which implements the core functionality.nsIINIParseris an XPCOM component accessible to JavaScript that can parse a string and be queried about the data it contained. This component also implementsnsIINIParserWritewhich allows for modifying the data and persisting it.nsIINIParserFactoryis an XPCOM component that can be used to parse a file’s contents returning annsIINIParser. This reads the file synchronously so most callers should prefer to read the file asynchronously and usensINIParserdirectly.
Supported syntax
The parser supports a very basic set of INI style data:
# an ignored comment
; another comment
[section1]
key=value
[section2]
otherkey=othervalue
Keys outside of sections are ignored.
The parser is fault tolerant, lines that contain invalid tokens will be ignored and parsing will continue with the next line. Invalid section names cause all subsequent keys to be ignored until the next valid section is found.
Quirks
While whitespace is stripped from the start of lines other whitespace in the line is retained, this impacts keys and values. For example a line that is " key = value " will parse into a key "key " and value " value " (quotes for clarity).