fix: level reader (#535)

* fix: level reader

* 21

* fix
main
bokuweb 2022-09-13 11:16:00 +09:00 committed by GitHub
parent 697652ed9b
commit 2717ec17dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 30 deletions

View File

@ -11,37 +11,43 @@ impl ElementReader for LevelOverride {
r: &mut EventReader<R>, r: &mut EventReader<R>,
attrs: &[OwnedAttribute], attrs: &[OwnedAttribute],
) -> Result<Self, ReaderError> { ) -> Result<Self, ReaderError> {
let mut o = LevelOverride::new(usize::from_str(&attrs[0].value)?); if let Ok(level) = usize::from_str(&attrs[0].value) {
loop { let mut o = LevelOverride::new(level);
let e = r.next(); loop {
match e { let e = r.next();
Ok(XmlEvent::StartElement { match e {
attributes, name, .. Ok(XmlEvent::StartElement {
}) => { attributes, name, ..
let e = XMLElement::from_str(&name.local_name).unwrap(); }) => {
match e { let e = XMLElement::from_str(&name.local_name).unwrap();
XMLElement::StartOverride => { match e {
let val = usize::from_str(&attributes[0].value)?; XMLElement::StartOverride => {
o = o.start(val); if let Ok(val) = usize::from_str(&attributes[0].value) {
continue; o = o.start(val);
}
continue;
}
XMLElement::Level => {
if let Ok(lvl) = Level::read(r, &attributes) {
o = o.level(lvl);
}
continue;
}
_ => {}
} }
XMLElement::Level => { }
let lvl = Level::read(r, &attributes)?; Ok(XmlEvent::EndElement { name, .. }) => {
o = o.level(lvl); let e = XMLElement::from_str(&name.local_name).unwrap();
continue; if e == XMLElement::LvlOverride {
return Ok(o);
} }
_ => {}
} }
Err(_) => return Err(ReaderError::XMLReadError),
_ => {}
} }
Ok(XmlEvent::EndElement { name, .. }) => {
let e = XMLElement::from_str(&name.local_name).unwrap();
if e == XMLElement::LvlOverride {
return Ok(o);
}
}
Err(_) => return Err(ReaderError::XMLReadError),
_ => {}
} }
} else {
Err(ReaderError::XMLReadError)
} }
} }
} }

View File

@ -84,9 +84,11 @@ impl FromXML for Numberings {
abs_num_id = usize::from_str(&attributes[0].value)? abs_num_id = usize::from_str(&attributes[0].value)?
} }
XMLElement::LvlOverride => { XMLElement::LvlOverride => {
let o = if let Ok(o) =
LevelOverride::read(&mut parser, &attributes)?; LevelOverride::read(&mut parser, &attributes)
level_overrides.push(o); {
level_overrides.push(o);
}
} }
_ => {} _ => {}
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "docx-wasm", "name": "docx-wasm",
"version": "0.0.276-rc20", "version": "0.0.276-rc23",
"main": "dist/node/index.js", "main": "dist/node/index.js",
"browser": "dist/web/index.js", "browser": "dist/web/index.js",
"author": "bokuweb <bokuweb12@gmail.com>", "author": "bokuweb <bokuweb12@gmail.com>",