XDocument.Parse 在未要求时保留空白

发布于 2024-10-02 07:55:01 字数 486 浏览 2 评论 0原文

我正在尝试从字符串加载 XDocument,该字符串包含文本节点中带有过多空格的 XML 元素。根据我对 MSDN 的 XDocument.Parse 方法的理解,它应该不保留空白。

那么,为什么在这个简单的例子中,空格仍然存在呢?

string xml = "<doc> <node>this  should  be  collapsed</node> </doc>";
XDocument doc = XDocument.Parse(xml);
Console.WriteLine(doc.Root.Element("node").Value);

Console.WriteLine 调用的结果是每个单词之间有两个空格的短语。我预计每个之间只有一个空格。

I'm trying to load an XDocument from a string, which contains XML elements with excessive whitespace in their text nodes. From my understanding of the MSDN for the XDocument.Parse method, it's supposed to not preserve whitespace.

Why then, in this simple example, is whitespace still present?

string xml = "<doc> <node>this  should  be  collapsed</node> </doc>";
XDocument doc = XDocument.Parse(xml);
Console.WriteLine(doc.Root.Element("node").Value);

The result of the Console.WriteLine call is the phrase with two spaces between each word. I expected only one space between each.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

箹锭⒈辈孓 2024-10-09 07:55:01

“不保留空格”意味着在加载 XDocument 时,任何包含空格的文本节点都将被忽略。

您的 xml 字符串可以用以下树表示:

 doc
 |--#text - " "
 |--node
 |  |--#text - "this  should  be  collapsed"
 |--#text - " "

如果您检查 doc.Root.Value 的内容,您将看到该字符串

"this  should  be  collapsed"

如果您在“保留空白”的同时加载该字符串,

XDocument doc = XDocument.Parse(xml, LoadOptions.PreserveWhitespace);

然后再次检查doc.Root.Value 的内容,您将看到该字符串

" this  should  be  collapsed "

"Not preserving whitespace" means that any text nodes that contain only whitespace will be ignored while loading the XDocument.

Your xml string can be represented by the following tree:

 doc
 |--#text - " "
 |--node
 |  |--#text - "this  should  be  collapsed"
 |--#text - " "

If you inspect the contents of doc.Root.Value, you will see the string

"this  should  be  collapsed"

If you instead load the string while "preserving whitespace",

XDocument doc = XDocument.Parse(xml, LoadOptions.PreserveWhitespace);

and again inspect the contents of doc.Root.Value, you will see the string

" this  should  be  collapsed "
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文