C# OpenXml:将XElement转换为OpenXmlElement

C# OpenXml:将XElement转换为OpenXmlElement,c#,openxml,openxml-sdk,C#,Openxml,Openxml Sdk,如何将XElement转换为OpenXmlElement?我的google fu失败或此问题尚未解决。您可以使用以下代码将给定的OpenXmlElement转换为XElement: OpenXmlElement el = ...; // Code to get the xml element from your office doc. // Then use XElement.Parse and the OuterXml property. XElement xel = XElement.Pa

如何将
XElement
转换为
OpenXmlElement
?我的google fu失败或此问题尚未解决。

您可以使用以下代码将给定的
OpenXmlElement
转换为
XElement

OpenXmlElement el = ...; // Code to get the xml element from your office doc.

// Then use XElement.Parse and the OuterXml property.
XElement xel = XElement.Parse(el.OuterXml);
XElement xe = ...;
using(StreamWriter sw = new StreamWriter(new MemoryStream()))
{
  sw.Write(xe.ToString());
  sw.Flush();
  sw.BaseStream.Seek(0, SeekOrigin.Begin);

  OpenXmlReader re = OpenXmlReader.Create(sw.BaseStream);

  re.Read();
  OpenXmlElement oxe = re.LoadCurrentElement();
  re.Close();
}
要将XElement转换为OpenXmlElement,请尝试以下代码:

OpenXmlElement el = ...; // Code to get the xml element from your office doc.

// Then use XElement.Parse and the OuterXml property.
XElement xel = XElement.Parse(el.OuterXml);
XElement xe = ...;
using(StreamWriter sw = new StreamWriter(new MemoryStream()))
{
  sw.Write(xe.ToString());
  sw.Flush();
  sw.BaseStream.Seek(0, SeekOrigin.Begin);

  OpenXmlReader re = OpenXmlReader.Create(sw.BaseStream);

  re.Read();
  OpenXmlElement oxe = re.LoadCurrentElement();
  re.Close();
}
希望,这有帮助