From 60154d8a4f2759ae560a67e7bdf9b4d7b07ab084 Mon Sep 17 00:00:00 2001 From: Chad Schouggins Date: Thu, 8 Apr 2021 23:27:10 -0400 Subject: [PATCH] Fixed casting exception in XfaForm.GetNodeText() While iterating through sibling nodes, any XText element would throw when the attempt was made to cast to XElement. Since NextNode is declared in XNode anyway, the cast was not necessaryto begin with. --- .../itext.forms.tests/itext/forms/xfa/XFAFormTest.cs | 10 ++++++++++ itext/itext.forms/itext/forms/xfa/XfaForm.cs | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/itext.tests/itext.forms.tests/itext/forms/xfa/XFAFormTest.cs b/itext.tests/itext.forms.tests/itext/forms/xfa/XFAFormTest.cs index a526a690d7..8748f30d02 100644 --- a/itext.tests/itext.forms.tests/itext/forms/xfa/XFAFormTest.cs +++ b/itext.tests/itext.forms.tests/itext/forms/xfa/XFAFormTest.cs @@ -141,5 +141,15 @@ public virtual void ExtractXFADataTest() { NUnit.Framework.Assert.IsNotNull(node); NUnit.Framework.Assert.AreEqual("Number1", node.Name.LocalName); } + + [NUnit.Framework.Test] + public virtual void GetXfaFieldValue() { + String inFileName = sourceFolder + "TextField1.pdf"; + PdfDocument pdfDocument = new PdfDocument(new PdfReader(inFileName)); + PdfAcroForm acroForm = PdfAcroForm.GetAcroForm(pdfDocument, true); + XfaForm xfaForm = acroForm.GetXfaForm(); + string value = xfaForm.GetXfaFieldValue("TextField1"); + NUnit.Framework.Assert.AreEqual("Test", value); + } } } diff --git a/itext/itext.forms/itext/forms/xfa/XfaForm.cs b/itext/itext.forms/itext/forms/xfa/XfaForm.cs index 0b5bd36af0..ea0d8b9e1c 100644 --- a/itext/itext.forms/itext/forms/xfa/XfaForm.cs +++ b/itext/itext.forms/itext/forms/xfa/XfaForm.cs @@ -612,7 +612,7 @@ private static String GetNodeText(XNode n, String name) { name += ((XText) n2).Value; } } - n2 = ((XElement) n2).NextNode; + n2 = n2.NextNode; } return name; }