aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward Barnard2015-09-23 20:20:52 +0100
committerEdward Barnard2015-09-23 20:20:52 +0100
commit5660e923ff061ff7b0115738c2be77d258a8e572 (patch)
tree95c1f762b6e74c16e728d2f5f95c125b1f54baa9
parentbea49a88a1cd85648c0912479352918bc490928d (diff)
downloadrust-plist-5660e923ff061ff7b0115738c2be77d258a8e572.tar.bz2
Handle multiline xml data elements
-rw-r--r--src/xml/reader.rs1
-rw-r--r--tests/data/xml.plist5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/xml/reader.rs b/src/xml/reader.rs
index 8960a39..329c180 100644
--- a/src/xml/reader.rs
+++ b/src/xml/reader.rs
@@ -52,6 +52,7 @@ impl<R: Read> StreamingParser<R> {
"true" => return Some(Ok(PlistEvent::BooleanValue(true))),
"false" => return Some(Ok(PlistEvent::BooleanValue(false))),
"data" => return Some(self.read_content(|s| {
+ let s: String = s.replace(" ", "").replace("\t", "");
match FromBase64::from_base64(&s[..]) {
Ok(b) => Ok(PlistEvent::DataValue(b)),
Err(_) => Err(ParserError::InvalidData)
diff --git a/tests/data/xml.plist b/tests/data/xml.plist
index 4db2173..5f5eb55 100644
--- a/tests/data/xml.plist
+++ b/tests/data/xml.plist
@@ -14,7 +14,10 @@
<key>Height</key>
<real>1.6</real>
<key>Data</key>
- <data>AAAAvgAAAAMAAAAeAAAA</data>
+ <data>
+ AAAAvgAAAA
+ MAAAAeAAAA
+ </data>
<key>Birthdate</key>
<date>1981-05-16T11:32:06Z</date>
</dict>