public void StructuredDocumentTagRangeStartXmlMapping()
        {
            //ExStart
            //ExFor:StructuredDocumentTagRangeStart.XmlMapping
            //ExSummary:Shows how to set XML mappings for the range start of a structured document tag.
            Document doc = new Document(MyDir + "Multi-section structured document tags.docx");

            // Construct an XML part that contains text and add it to the document's CustomXmlPart collection.
            string        xmlPartId      = Guid.NewGuid().ToString("B");
            string        xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>";
            CustomXmlPart xmlPart        = doc.CustomXmlParts.Add(xmlPartId, xmlPartContent);

            Assert.AreEqual("<root><text>Text element #1</text><text>Text element #2</text></root>",
                            Encoding.UTF8.GetString(xmlPart.Data));

            // Create a structured document tag that will display the contents of our CustomXmlPart in the document.
            StructuredDocumentTagRangeStart sdtRangeStart = (StructuredDocumentTagRangeStart)doc.GetChild(NodeType.StructuredDocumentTagRangeStart, 0, true);

            // If we set a mapping for our structured document tag,
            // it will only display a portion of the CustomXmlPart that the XPath points to.
            // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart.
            sdtRangeStart.XmlMapping.SetMapping(xmlPart, "/root[1]/text[2]", null);

            doc.Save(ArtifactsDir + "StructuredDocumentTag.StructuredDocumentTagRangeStartXmlMapping.docx");
            //ExEnd

            doc     = new Document(ArtifactsDir + "StructuredDocumentTag.StructuredDocumentTagRangeStartXmlMapping.docx");
            xmlPart = doc.CustomXmlParts[0];

            Assert.True(Guid.TryParse(xmlPart.Id, out Guid temp));
            Assert.AreEqual("<root><text>Text element #1</text><text>Text element #2</text></root>", Encoding.UTF8.GetString(xmlPart.Data));

            sdtRangeStart = (StructuredDocumentTagRangeStart)doc.GetChild(NodeType.StructuredDocumentTagRangeStart, 0, true);
            Assert.AreEqual("/root[1]/text[2]", sdtRangeStart.XmlMapping.XPath);
        }
Example #2
0
        public static void StructuredDocumentTagRangeStartXmlMapping(string dataDir)
        {
            // ExStart:StructuredDocumentTagRangeStartXmlMapping
            Document doc = new Document(dataDir + "input.docx");

            StructuredDocumentTagRangeStart sdtRangeStart = (StructuredDocumentTagRangeStart)doc.GetChild(NodeType.StructuredDocumentTagRangeStart, 0, true);

            sdtRangeStart.XmlMapping.SetMapping(doc.CustomXmlParts[0], "/Root/Element", null);

            doc.Save(dataDir + "output.docx");
            // ExEnd:StructuredDocumentTagRangeStartXmlMapping
        }
Example #3
0
        public void MultiSectionTags()
        {
            //ExStart
            //ExFor:StructuredDocumentTagRangeStart
            //ExFor:StructuredDocumentTagRangeStart.Id
            //ExFor:StructuredDocumentTagRangeStart.Title
            //ExFor:StructuredDocumentTagRangeStart.IsShowingPlaceholderText
            //ExFor:StructuredDocumentTagRangeStart.LockContentControl
            //ExFor:StructuredDocumentTagRangeStart.LockContents
            //ExFor:StructuredDocumentTagRangeStart.Level
            //ExFor:StructuredDocumentTagRangeStart.RangeEnd
            //ExFor:StructuredDocumentTagRangeStart.SdtType
            //ExFor:StructuredDocumentTagRangeStart.Tag
            //ExFor:StructuredDocumentTagRangeEnd
            //ExFor:StructuredDocumentTagRangeEnd.Id
            //ExSummary:Shows how to get multi-section structured document tags properties.
            Document doc = new Document(MyDir + "Multi-section structured document tags.docx");

            // Note that these nodes can be a child of NodeType.Body node only and all properties of these nodes are read-only.
            StructuredDocumentTagRangeStart rangeStartTag =
                doc.GetChildNodes(NodeType.StructuredDocumentTagRangeStart, true)[0] as StructuredDocumentTagRangeStart;
            StructuredDocumentTagRangeEnd rangeEndTag =
                doc.GetChildNodes(NodeType.StructuredDocumentTagRangeEnd, true)[0] as StructuredDocumentTagRangeEnd;

            Assert.AreEqual(rangeStartTag.Id, rangeEndTag.Id);                                 //ExSkip
            Assert.AreEqual(NodeType.StructuredDocumentTagRangeStart, rangeStartTag.NodeType); //ExSkip
            Assert.AreEqual(NodeType.StructuredDocumentTagRangeEnd, rangeEndTag.NodeType);     //ExSkip

            Console.WriteLine("StructuredDocumentTagRangeStart values:");
            Console.WriteLine($"\t|Id: {rangeStartTag.Id}");
            Console.WriteLine($"\t|Title: {rangeStartTag.Title}");
            Console.WriteLine($"\t|IsShowingPlaceholderText: {rangeStartTag.IsShowingPlaceholderText}");
            Console.WriteLine($"\t|LockContentControl: {rangeStartTag.LockContentControl}");
            Console.WriteLine($"\t|LockContents: {rangeStartTag.LockContents}");
            Console.WriteLine($"\t|Level: {rangeStartTag.Level}");
            Console.WriteLine($"\t|NodeType: {rangeStartTag.NodeType}");
            Console.WriteLine($"\t|RangeEnd: {rangeStartTag.RangeEnd}");
            Console.WriteLine($"\t|SdtType: {rangeStartTag.SdtType}");
            Console.WriteLine($"\t|Tag: {rangeStartTag.Tag}\n");

            Console.WriteLine("StructuredDocumentTagRangeEnd values:");
            Console.WriteLine($"\t|Id: {rangeEndTag.Id}");
            Console.WriteLine($"\t|NodeType: {rangeEndTag.NodeType}");
            //ExEnd
        }
Example #4
0
        public void StructuredDocumentTagRangeStartXmlMapping()
        {
            //ExStart:StructuredDocumentTagRangeStartXmlMapping
            Document doc = new Document(MyDir + "Multi-section structured document tags.docx");

            // Construct an XML part that contains data and add it to the document's CustomXmlPart collection.
            string        xmlPartId      = Guid.NewGuid().ToString("B");
            string        xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>";
            CustomXmlPart xmlPart        = doc.CustomXmlParts.Add(xmlPartId, xmlPartContent);

            Console.WriteLine(Encoding.UTF8.GetString(xmlPart.Data));

            // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document.
            StructuredDocumentTagRangeStart sdtRangeStart = (StructuredDocumentTagRangeStart)doc.GetChild(NodeType.StructuredDocumentTagRangeStart, 0, true);

            // If we set a mapping for our StructuredDocumentTag,
            // it will only display a part of the CustomXmlPart that the XPath points to.
            // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart.
            sdtRangeStart.XmlMapping.SetMapping(xmlPart, "/root[1]/text[2]", null);

            doc.Save(ArtifactsDir + "WorkingWithSdt.StructuredDocumentTagRangeStartXmlMapping.docx");
            //ExEnd:StructuredDocumentTagRangeStartXmlMapping
        }