From e2bc804cc1552ea552f3f8156a96c83e2c5bfb48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 15 Feb 2023 14:47:44 +0800 Subject: [PATCH] add: unmarshal anchorId & editId --- structdoc_test.go | 18 +++++++++++++----- structdrawing.go | 14 +++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/structdoc_test.go b/structdoc_test.go index c603256..8da73ec 100644 --- a/structdoc_test.go +++ b/structdoc_test.go @@ -113,7 +113,7 @@ const drawing_doc = ` - + @@ -177,7 +177,7 @@ const drawing_doc = ` - + @@ -223,7 +223,7 @@ const drawing_doc = ` - + @@ -290,7 +290,7 @@ const drawing_doc = ` - + @@ -449,7 +449,7 @@ const drawing_doc = ` - + 2935605 @@ -546,6 +546,8 @@ func TestUnmarshalDrawingStructure(t *testing.T) { t.Log("fild drawing at aragraph", i, ", child", j) if child.Run.Drawing.Inline != nil { tail := "-mock-inline-p" + string(rune('0'+i)) + "-c" + string(rune('0'+j)) + anchor := "mock-anchor-p" + string(rune('0'+i)) + "-c" + string(rune('0'+j)) + edit := "mock-edit-p" + string(rune('0'+i)) + "-c" + string(rune('0'+j)) if "T"+tail != child.Run.Drawing.Inline.DistT { t.Fatal("expect", "T"+tail, "but got", child.Run.Drawing.Inline.DistT) } @@ -558,6 +560,12 @@ func TestUnmarshalDrawingStructure(t *testing.T) { if "R"+tail != child.Run.Drawing.Inline.DistR { t.Fatal("expect", "R"+tail, "but got", child.Run.Drawing.Inline.DistR) } + if anchor != child.Run.Drawing.Inline.AnchorID { + t.Fatal("expect", anchor, "but got", child.Run.Drawing.Inline.AnchorID) + } + if edit != child.Run.Drawing.Inline.EditID { + t.Fatal("expect", edit, "but got", child.Run.Drawing.Inline.EditID) + } } } } diff --git a/structdrawing.go b/structdrawing.go index a8c0638..7c46d19 100644 --- a/structdrawing.go +++ b/structdrawing.go @@ -27,6 +27,8 @@ func (r *Drawing) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { r.Inline.DistB = getAtt(tt.Attr, "distB") r.Inline.DistL = getAtt(tt.Attr, "distL") r.Inline.DistR = getAtt(tt.Attr, "distR") + r.Inline.AnchorID = getAtt(tt.Attr, "anchorId") + r.Inline.EditID = getAtt(tt.Attr, "editId") d.DecodeElement(r.Inline, &start) default: continue @@ -40,11 +42,13 @@ func (r *Drawing) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { // WPInline wp:inline type WPInline struct { - XMLName xml.Name `xml:"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing inline,omitempty"` - DistT string `xml:"distT,attr"` - DistB string `xml:"distB,attr"` - DistL string `xml:"distL,attr"` - DistR string `xml:"distR,attr"` + XMLName xml.Name `xml:"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing inline,omitempty"` + DistT string `xml:"distT,attr"` + DistB string `xml:"distB,attr"` + DistL string `xml:"distL,attr"` + DistR string `xml:"distR,attr"` + AnchorID string `xml:"wp14:anchorId,attr"` + EditID string `xml:"wp14:editId,attr"` } func (r *WPInline) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {