| 22 | * ``` |
| 23 | */ |
| 24 | export function parseRels(xmlString: string): Map<string, RelEntry> { |
| 25 | const result = new Map<string, RelEntry>() |
| 26 | |
| 27 | if (!xmlString) return result |
| 28 | |
| 29 | const root = parseXml(xmlString) |
| 30 | if (!root.exists()) return result |
| 31 | |
| 32 | const relationships = root.children('Relationship') |
| 33 | for (const rel of relationships) { |
| 34 | const id = rel.attr('Id') |
| 35 | const type = rel.attr('Type') |
| 36 | const target = rel.attr('Target') |
| 37 | const targetMode = rel.attr('TargetMode') |
| 38 | |
| 39 | if (id && type !== undefined && target !== undefined) { |
| 40 | result.set(id, { type, target, targetMode }) |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | return result |
| 45 | } |
| 46 | |
| 47 | /** |
| 48 | * Resolve a relative target path against a base path. |