如何将以下内容从XML文件读入XDocument。
生成的XDocument如何不应包含" <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
<math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
<math:semantics>
<math:msup>
<math:mrow>
<math:mo math:stretchy="false">(</math:mo>
<math:mrow>
<math:mi>a</math:mi>
<math:mo math:stretchy="false">+</math:mo>
<math:mi>b</math:mi>
</math:mrow>
<math:mo math:stretchy="false">)</math:mo>
</math:mrow>
<math:mn>2</math:mn>
</math:msup>
<math:annotation math:encoding="StarMath 5.0">(a+b)^2</math:annotation>
</math:semantics>
</math:math>
答案 0 :(得分:1)
如果您想从文件中读取它:
XDocument doc = XDocument.Load("yourfilepath");
如果来自字符串:
XDocument doc = XDocument.Parse("<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
<math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
<math:semantics>
<math:msup>
<math:mrow>
<math:mo math:stretchy="false">(</math:mo>
<math:mrow>
<math:mi>a</math:mi>
<math:mo math:stretchy="false">+</math:mo>
<math:mi>b</math:mi>
</math:mrow>
<math:mo math:stretchy="false">)</math:mo>
</math:mrow>
<math:mn>2</math:mn>
</math:msup>
<math:annotation math:encoding="StarMath 5.0">(a+b)^2</math:annotation>
</math:semantics>
</math:math>");
答案 1 :(得分:1)
您可以尝试在XDocument.DocumentType
属性上调用Remove()
方法来删除DOCTYPE信息,例如:
var xml = @"<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE math:math PUBLIC '-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN' 'math.dtd'>
<math:math xmlns:math='http://www.w3.org/1998/Math/MathML'>
<math:semantics>
<math:msup>
<math:mrow>
<math:mo math:stretchy='false'>(</math:mo>
<math:mrow>
<math:mi>a</math:mi>
<math:mo math:stretchy='false'>+</math:mo>
<math:mi>b</math:mi>
</math:mrow>
<math:mo math:stretchy='false'>)</math:mo>
</math:mrow>
<math:mn>2</math:mn>
</math:msup>
<math:annotation math:encoding='StarMath 5.0'>(a+b)^2</math:annotation>
</math:semantics>
</math:math>";
var doc = XDocument.Parse(xml);
doc.DocumentType.Remove();
Console.WriteLine(doc.ToString());
<强> Dotnetfiddle Demo
强>
输出
<math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
<math:semantics>
<math:msup>
<math:mrow>
<math:mo math:stretchy="false">(</math:mo>
<math:mrow>
<math:mi>a</math:mi>
<math:mo math:stretchy="false">+</math:mo>
<math:mi>b</math:mi>
</math:mrow>
<math:mo math:stretchy="false">)</math:mo>
</math:mrow>
<math:mn>2</math:mn>
</math:msup>
<math:annotation math:encoding="StarMath 5.0">(a+b)^2</math:annotation>
</math:semantics>
</math:math>