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 {