Во время отладки вновь созданный элемент имеет префикс как w:, но Xmldoc в конце теряет его.
Результирующий InnerXML для элемента ниже: <altChunk id="FF_HTML" xmlns="http://schemas.openxmlformats.org/wordprocessingml/2006/main" />
Ожидаемый результат: <w:altChunk r:id="FF_HTML"/>
private static XmlDocument prepareHTMLChunks(PackagePart partDocumentXML)
{
XmlDocument doc = new XmlDocument();
Stream xmlStream = partDocumentXML.GetStream();
doc.Load(xmlStream);
NameTable nt = new NameTable();
nsManager = new XmlNamespaceManager(nt);
nsManager.AddNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
XmlNodeList nodeList = doc.SelectNodes("//w:bookmarkStart", nsManager);
foreach (XmlNode node in nodeList)
{
foreach (XmlAttribute attr in node.Attributes)
{
if (attr.Value.EndsWith("HTML"))
{
//XmlElement el = doc.CreateElement("w","w:altChunk",string.Empty);
XmlElement el = doc.CreateElement("altChunk",nsManager.LookupNamespace("w"));
XmlAttribute altChunkAttr = doc.CreateAttribute("r","id",string.Empty);
altChunkAttr.Prefix = "r";
altChunkAttr.Value = attr.Value;
el.SetAttributeNode(altChunkAttr);
XmlNode nodeToReplace = node.ParentNode;
XmlNode bodyNode = doc.SelectSingleNode("//w:body", nsManager);
bodyNode.ReplaceChild(el, nodeToReplace);
}
}
}
return doc;
}