From 1b34980c5375cb24610663b9ab20a3a3bde3fe9e Mon Sep 17 00:00:00 2001 From: Lowell Stewart Date: Sat, 3 Jan 2026 15:16:30 -0700 Subject: [PATCH] When removing smart tags, also remove smart tag properties (if present) --- .../MarkupSimplifierTests.cs | 16 ++++++++++++--- OpenXmlPowerTools/MarkupSimplifier.cs | 20 ++++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/OpenXmlPowerTools.Tests/MarkupSimplifierTests.cs b/OpenXmlPowerTools.Tests/MarkupSimplifierTests.cs index 5bc7ab7b..71408483 100644 --- a/OpenXmlPowerTools.Tests/MarkupSimplifierTests.cs +++ b/OpenXmlPowerTools.Tests/MarkupSimplifierTests.cs @@ -12,8 +12,7 @@ public class MarkupSimplifierTests { private const WordprocessingDocumentType DocumentType = WordprocessingDocumentType.Document; - private const string SmartTagDocumentTextValue = "The countries include Algeria, Botswana, and Sri Lanka."; - + private const string SmartTagDocumentTextValue = "The countries include Algeria, Botswana, and Sri Lanka. This is privileged information!"; private const string SmartTagDocumentXmlString = @" @@ -45,7 +44,18 @@ public class MarkupSimplifierTests - . + . This is + + + + + + + privileged + + + + information! diff --git a/OpenXmlPowerTools/MarkupSimplifier.cs b/OpenXmlPowerTools/MarkupSimplifier.cs index 1240e78b..a6f4dabb 100644 --- a/OpenXmlPowerTools/MarkupSimplifier.cs +++ b/OpenXmlPowerTools/MarkupSimplifier.cs @@ -191,14 +191,20 @@ private static object RemoveCustomXmlAndContentControlsTransform( { if (node is XElement element) { - if (simplifyMarkupSettings.RemoveSmartTags && - element.Name == W.smartTag) + if (simplifyMarkupSettings.RemoveSmartTags) { - return element - .Elements() - .Select(e => - RemoveCustomXmlAndContentControlsTransform(e, - simplifyMarkupSettings)); + if (element.Name == W.smartTag) + { + return element + .Elements() + .Select(e => + RemoveCustomXmlAndContentControlsTransform(e, + simplifyMarkupSettings)); + } + if (element.Name == W.smartTagPr) + { + return null; + } } if (simplifyMarkupSettings.RemoveContentControls &&