Tag: whitespace

使用XElement保存XML文件时,文件中的对齐也会发生变化,如何避免?

我在用 XElement root = XElement.Load(filepath); 加载XML文件,然后找到我需要的东西。 IEnumerable commands = from command in MyCommands where (string) command.Attribute(“Number”) == Number select command; foreach (XElement command in commands) { command.SetAttributeValue(“Group”, GroupFound); } 完成更改后,我使用以下代码保存文件。 root.Save(filepath); 保存文件时,XML文件中的所有行都会受到影响。 默认情况下,Visual Studio会对齐所有行,但我需要保存原始文件格式。 除了Group属性值之外,我无法更改文档的任何部分。 command.SetAttributeValue(“Group”) attributes.

当xml:space = preserve时,XmlWriter插入空格

鉴于此代码(C#,.NET 3.5 SP1): var doc = new XmlDocument(); doc.LoadXml(“” + “” + “content” + “content” + “”); var text = new StringWriter(); var settings = new XmlWriterSettings() { Indent = true, CloseOutput = true }; using (var writer = XmlWriter.Create(text, settings)) { doc.DocumentElement.WriteTo(writer); } var xml = text.GetStringBuilder().ToString(); Assert.AreEqual(“\r\n\r\n” + ” content” + “content\r\n”, xml); […]

从C#LINQ解析XML时,如何保留空白字符

我需要在C#代码或XML文档中做什么才能让XDocument解析器读取XElement的Value s的文字空格? 背景 我有一个XML文档,其中一部分如下所示: 我正在使用LINQ查询将每个XELement的值添加到数据字典中; .ForEach部分如下所示: .ForEach(x => SchemaDictionary.Add( LogicHelper.GetEnumValue(x.Name.ToString()), x.Value)); 为了测试是否保留了空白值,我打印出数据字典中每个值项的字符编号行。 在下面的代码中, x表示KeyValuePair ,而Aggregate只是生成字符整数值的字符串: x.Value.ToCharArray() .Aggregate(“”,(word,c) => word + ((int)c).ToString() + ” ” ) )); 我希望值为10 13 , 值为32 32 32 32 。 但是,没有为每个值打印任何内容( 注意:XML中的其他转义值,例如<正确打印其字符数 )。 我需要在C#代码或XML文档中做什么才能使我的解析器将完整的空白字符串添加到数据字典中?

C#XSLT转换添加&#xA; 和&#xD; 到输出

我有一个XSLT转换问题: style=”width:{Data/PercentSpaceUsed}%;” Data / PercentSpaceUsed的值是整数3。 它输出: style=”width: 3 %;” 而不是我的预期: style=”width:3%;” 这是执行转换的代码: xslt_xslt是转换xml, sw.ToString()包含 和 这是我没想到的。 var xslTransObj = new XslCompiledTransform(); var reader = new XmlTextReader(new StringReader(xslt_xslt)); xslTransObj.Load(reader); var sw = new StringWriter(); var writer = new XmlTextWriter(sw); xslTransObj.Transform(new XmlTextReader(new StringReader(xslt_data)), writer); ResultLiteral.Text = sw.ToString();

如何修剪字符之间的空格

如何删除c#中字符之间的空格? Trim()可用于删除字符串开头和结尾处的空白空格。 例如” C Sharp “.Trim()结果为”C Sharp” 。 但是如何将字符串转换为CSharp ? 我们可以使用for或a for each循环以及临时变量来移除空间。 但是在C#(.Net framework 3.5)中有没有像Trim()那样的内置方法?

如果没有空格分隔符,为什么XmlReader会跳过所有其他元素?

当我尝试使用LINQ XmlReader类解析XML时,我看到了奇怪的行为。 下面的测试用例:看起来我是否使用(XElement)XNode.ReadFrom(xmlReader)或XmlReader上的一个Read()方法,它错过了输入XML中的第二个bar元素。 如果在和之间添加了任何空格,那么它将正确解析第二个bar元素。 有没有人知道为什么输入流搞砸了以及如何解决这个问题? [Test] [Explicit] public void ShouldParseCorrectNumberOfElements() { var xml = @”wtfwtf2″; XmlReader xmlReader = XmlReader.Create(new MemoryStream(Encoding.UTF8.GetBytes(xml))); int count = 0; xmlReader.MoveToContent(); while (xmlReader.Read()) { if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == “bar”) { var element = xmlReader.ReadOuterXml(); Console.WriteLine(“just got an ” + element); count++; } } Assert.AreEqual(2, count); }