package document // Relationships 表示Word文档中的关系集合 type Relationships struct { Relationships []*Relationship } // Relationship 表示Word文档中的关系 type Relationship struct { ID string Type string Target string TargetMode string // 目标模式:Internal, External } // NewRelationships 创建一个新的关系集合 func NewRelationships() *Relationships { return &Relationships{ Relationships: make([]*Relationship, 0), } } // AddRelationship 添加一个关系 func (r *Relationships) AddRelationship(id, relType, target string) *Relationship { rel := &Relationship{ ID: id, Type: relType, Target: target, } r.Relationships = append(r.Relationships, rel) return rel } // AddExternalRelationship 添加一个外部关系 func (r *Relationships) AddExternalRelationship(id, relType, target string) *Relationship { rel := &Relationship{ ID: id, Type: relType, Target: target, TargetMode: "External", } r.Relationships = append(r.Relationships, rel) return rel } // GetRelationshipByID 根据ID获取关系 func (r *Relationships) GetRelationshipByID(id string) *Relationship { for _, rel := range r.Relationships { if rel.ID == id { return rel } } return nil } // GetRelationshipsByType 根据类型获取关系 func (r *Relationships) GetRelationshipsByType(relType string) []*Relationship { result := make([]*Relationship, 0) for _, rel := range r.Relationships { if rel.Type == relType { result = append(result, rel) } } return result } // ToXML 将关系集合转换为XML func (r *Relationships) ToXML() string { xml := "" xml += "" for _, rel := range r.Relationships { xml += "