我知道这有点愚蠢,但我正在转换的XML有时会有一个只有单个或双个空格的元素。像这样:
Dim es1 = <Text> </Text>
当我尝试将此.Value
作为Dim resultText = es1.Value
时,它只是一个空字符串。如果元素中有前导和/或尾随空格以及至少一个其他字符,则这不是问题。
无论如何强迫.Value
给我空白区域,如果有的话呢?
答案 0 :(得分:6)
解析XML时使用LoadOptions.PreserveWhitespace
。 C#示例代码:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
string xml = "<Foo> </Foo>";
XElement withWhitespace = XElement.Parse(xml,
LoadOptions.PreserveWhitespace);
Console.WriteLine(withWhitespace.Value.Length); // Prints 1
XElement withoutWhitespace = XElement.Parse(xml);
Console.WriteLine(withoutWhitespace.Value.Length); // Prints 0
}
}
(显然,使用Load
以及Parse
等时可以使用此功能。)
我不知道如何适应VB XML文字,但我会假设你通常是从文件中解析等等。)
答案 1 :(得分:2)
使用以下命令加载XDocument:
LoadOptions.PreserveWhitespace
答案 2 :(得分:1)
如果您需要带有空格的XML文字,请使用嵌入式表达式。这个例子有两个空格。
Dim TwoSpaces As XElement = <f><%= " " %></f>
Dim s As String = TwoSpaces.Value