void LoadRelationships() { relationships = new Dictionary <string, PackageRelationship> (); if (!PartExists(RelationshipUri)) { return; } using (Stream stream = GetPart(RelationshipUri).GetStream()) { XmlDocument doc = new XmlDocument(); doc.Load(stream); XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable); manager.AddNamespace("rel", RelationshipNamespace); foreach (XmlNode node in doc.SelectNodes("/rel:Relationships/*", manager)) { TargetMode mode = TargetMode.Internal; if (node.Attributes["TargetMode"] != null) { mode = (TargetMode)Enum.Parse(typeof(TargetMode), node.Attributes ["TargetMode"].Value); } Uri uri; try { uri = new Uri(node.Attributes ["Target"].Value.ToString(), UriKind.Relative); } catch { uri = new Uri(node.Attributes ["Target"].Value.ToString(), UriKind.Absolute); } CreateRelationship(uri, mode, node.Attributes["Type"].Value.ToString(), node.Attributes["Id"].Value.ToString(), true); } foreach (PackageRelationship r in relationships.Values) { if (r.RelationshipType == System.IO.Packaging.PackageProperties.NSPackagePropertiesRelation) { PackagePart part = GetPart(PackUriHelper.ResolvePartUri(Uri, r.TargetUri)); packageProperties = new PackagePropertiesPart(); packageProperties.Package = this; packageProperties.Part = part; packageProperties.LoadFrom(part.GetStream()); } } } }
void LoadRelationships () { relationships = new Dictionary<string, PackageRelationship> (); if (!PartExists (RelationshipUri)) return; using (Stream stream = GetPart (RelationshipUri).GetStream ()) { XmlDocument doc = new XmlDocument (); doc.Load (stream); XmlNamespaceManager manager = new XmlNamespaceManager (doc.NameTable); manager.AddNamespace ("rel", RelationshipNamespace); foreach (XmlNode node in doc.SelectNodes ("/rel:Relationships/*", manager)) { TargetMode mode = TargetMode.Internal; if (node.Attributes["TargetMode"] != null) mode = (TargetMode) Enum.Parse (typeof(TargetMode), node.Attributes ["TargetMode"].Value); Uri uri; try { uri = new Uri (node.Attributes ["Target"].Value.ToString(), UriKind.Relative); } catch { uri = new Uri (node.Attributes ["Target"].Value.ToString(), UriKind.Absolute); } CreateRelationship (uri, mode, node.Attributes["Type"].Value.ToString (), node.Attributes["Id"].Value.ToString (), true); } foreach (PackageRelationship r in relationships.Values) { if (r.RelationshipType == System.IO.Packaging.PackageProperties.NSPackagePropertiesRelation) { PackagePart part = GetPart (PackUriHelper.ResolvePartUri (Uri, r.TargetUri)); packageProperties = new PackagePropertiesPart (); packageProperties.Package = this; packageProperties.Part = part; packageProperties.LoadFrom (part.GetStream ()); } } } }