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