diff --git a/OpenXmlPowerTools/DocumentAssembler.cs b/OpenXmlPowerTools/DocumentAssembler.cs index f4d9673e..00a835b2 100644 --- a/OpenXmlPowerTools/DocumentAssembler.cs +++ b/OpenXmlPowerTools/DocumentAssembler.cs @@ -521,6 +521,7 @@ private static string ValidatePerSchema(XElement element) + ", @@ -750,6 +751,8 @@ static object ContentReplacementTransform(XNode node, XElement data, TemplateErr string xPath = (string)element.Attribute(PA.Select); var match = (string)element.Attribute(PA.Match); var notMatch = (string)element.Attribute(PA.NotMatch); + var optionalString = (string)element.Attribute(PA.Optional); + bool optional = (optionalString != null && optionalString.ToLower() == "true"); if (match == null && notMatch == null) return CreateContextErrorMessage(element, "Conditional: Must specify either Match or NotMatch", templateError); @@ -760,7 +763,7 @@ static object ContentReplacementTransform(XNode node, XElement data, TemplateErr try { - testValue = EvaluateXPathToString(data, xPath, false); + testValue = EvaluateXPathToString(data, xPath, optional); } catch (XPathException e) { @@ -815,7 +818,7 @@ private static XElement CreateParaErrorMessage(string errorMessage, TemplateErro return errorPara; } - private static string EvaluateXPathToString(XElement element, string xPath, bool optional ) + private static string EvaluateXPathToString(XElement element, string xPath, bool optional) { object xPathSelectResult; try