信息
您所需的主题如下所示。但此主题未包含在此库中。

XDocument.Load 方法 (TextReader, LoadOptions)

2013/12/13

TextReader 创建新 XDocument,还可以选择保留空白和行信息以及设置基 URI。

Namespace:  System.Xml.Linq
程序集:  System.Xml.Linq(位于 System.Xml.Linq.dll 中)

public static XDocument Load(
	TextReader textReader,
	LoadOptions options
)

参数

textReader
类型: System.IO.TextReader
一个 TextReader,其中包含 XDocument 的内容。
options
类型: System.Xml.Linq.LoadOptions
一个 LoadOptions,指定空白行为以及是否加载基 URI 和行信息。

返回值

类型: System.Xml.Linq.XDocument
XDocument,其中包含从指定的 TextReader 读取的 XML。

如果源 XML 有缩进,则在 options 中设置 PreserveWhitespace 标志将导致读取器读取源 XML 中的所有空白。将为有效空白和无关紧要空白两者创建 XText 类型的节点。

如果源 XML 有缩进,则不在 options 中设置 PreserveWhitespace 标志将导致读取器忽略源 XML 中所有无关紧要的空白。会为无关紧要空白创建不包括任何文本节点的 XML 树。

如果源 XML 没有缩进,则在 options 中设置 PreserveWhitespace 标志将不起作用。有效空白仍然保留,但不保留可能导致创建更多空白文本节点的无关紧要空白段。

使用 Parse 从包含 XML 的字符串创建 XDocument

在从 TextReader 加载时,设置 SetBaseUri 是无效的。

如果设置 SetLineInfo 标志,则会降低性能。

加载 XML 文档后,行信息将立即准确无误。如果在加载文档之后修改 XML 树,则行信息可能会变得毫无意义。

下面的示例从 StringReader 创建文档。


StringBuilder output = new StringBuilder();
TextReader sr;
int whiteSpaceNodes;

sr = new StringReader("<Root> <Child> </Child> </Root>");
XDocument xmlTree1 = XDocument.Load(sr, LoadOptions.None);
sr.Close();
whiteSpaceNodes = xmlTree1
    .Element("Root")
    .DescendantNodesAndSelf()
    .OfType<XText>()
    .Where(tNode => tNode.ToString().Trim().Length == 0)
    .Count();
output.Append("Count of white space nodes (not preserving whitespace): " + whiteSpaceNodes);
output.Append(Environment.NewLine);

sr = new StringReader("<Root> <Child> </Child> </Root>");
XDocument xmlTree2 = XDocument.Load(sr, LoadOptions.PreserveWhitespace);
sr.Close();
whiteSpaceNodes = xmlTree2
    .Element("Root")
    .DescendantNodesAndSelf()
    .OfType<XText>()
    .Where(tNode => tNode.ToString().Trim().Length == 0)
    .Count();
output.Append("Count of white space nodes (preserving whitespace): " + whiteSpaceNodes);
output.Append(Environment.NewLine);

OutputTextBlock.Text = output.ToString();


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示: