首页 > 其他分享 >解决使用XDocument操作FlowDocument时XML被格式化的问题

解决使用XDocument操作FlowDocument时XML被格式化的问题

时间:2024-05-29 12:00:15浏览次数:16  
标签:XML FlowDocument doc XDocument var 解析

最近需要对WPF中的FlowDocument进行解析编辑操作,理想的办法是解析成FlowDocument对象,但是有些操作不是很方便。

 

FlowDocument实际上还是XML,我直接使用XDocument去进行解析操作更方便。

如下就是一个FlowDocument的一个段落

1 <Section xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml:space="preserve" TextAlignment="Left" LineHeight="Auto" IsHyphenationEnabled="False" xml:lang="en-us" FlowDirection="LeftToRight" ><Paragraph TextAlignment="Justify" NumberSubstitution.CultureSource="Text" Foreground="#FF000000"><Run>这是一个段落</Run></Paragraph></Section>

 

使用如下的代码添加一个属性后

1  var sr= new StringReader(“xxxxxxxxFlowDocument”);
2  var doc = XDocument.Load(sr);
3  foreach (XElement paragraph in doc.Root.Elements())
4  {
5      paragraph.Add(new XAttribute("Att", $"AttValue"));
6  }
7  sr.Dispose();
8  var flowDocument =  doc.ToString();

 

XML会被格式化,在XML里,这种格式化显示是不会有问题的,因为只解析节点。

FlowDocument与XML不同的是,节点之间的空格/空行会被解析成内容,造成格式显示错误

 

1 <Section xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml:space="preserve" TextAlignment="Left" LineHeight="Auto" IsHyphenationEnabled="False" xml:lang="en-us">
2   <Paragraph TextAlignment="Justify" NumberSubstitution.CultureSource="Text" Foreground="#FF000000" Att="AttValue">
3     <Run>这是一个段落</Run>
4   </Paragraph>
5 </Section>

 

解决办法如下:

1 var flowDocument =  doc.ToString(SaveOptions.DisableFormatting);

 

这样元素还是保持原来的格式

标签:XML,FlowDocument,doc,XDocument,var,解析
From: https://www.cnblogs.com/zhaotianff/p/18219977

相关文章

  • maven中排除依赖传递可以在pom.xml文件中使用exclusions标签
    在项目A中引入项目B的依赖,通过依赖传递,会把项目B中的jar都引进来,如果在项目A中不想使用项目B中的某些jar包,可以使用exclusions标签进行排除,具体该标签的用法:<!--mybatis-spring依赖--><dependency><groupId>org.mybatis</groupId>......
  • Mybatis的Xml映射文件
    XML映射文件1.首先xml文件要与mapper接口进行同包同名2.xml映射文件的命名空间namespace=“com.itheima.mapper.EmpMapper”3.xml文件中的sql语句的id要与mapper中的方法名保持一致如果是查询操作,那么要resultmap的类型与Emp保持一致那么我们就先根据这三点......
  • 什么是Spring的Java配置?它相比XML配置有何优势?
    Spring的Java配置指的是使用Java注解和Java代码来配置Spring应用的方式,它是Spring框架提供的一种配置Spring容器和其Bean的替代方法,与传统的基于XML的配置相比,Java配置提供了一种类型安全和更具可读性的配置方式。Java配置的定义:Java配置通常涉及以下几个方面:使用@Config......
  • XML和JSON的区别
    XML(ExtensibleMarkupLanguage)和JSON(JavaScriptObjectNotation)都是常见的数据交换格式,但它们有以下几点主要区别:1:语法结构:XML是一种基于标签的标记语言,数据包裹在开始标签和结束标签中,如<person><name>John</name><age>30</age></person>。JSON是一......
  • C# xml文档反序列化记事
    可以使用XmlSerializer直接序列化和反序列化xml反序列化如以下代码privateT?XmlDeseriallize<T>(stringfilePath){XmlSerializerserializer=newXmlSerializer(typeof(T));using(FileStreamfileStream=newFileStream(f......
  • 干掉 XML、Mapper,Fluent Mybatis 牛逼
    干掉XML、Mapper,FluentMybatis牛逼前言Part1仓库地址Part2需求场景设置Part3三者实现对比1使用fluentmybatis来实现上面的功能2换成mybatis原生实现效果1、定义Mapper接口2、定义接口需要用到的参数实体SummaryQuery3、定义实现业务逻辑的mapperxml文件4、实现业......
  • xml获取数据
     获取xml文本加载xml文本解析xml文本:(1)获取根节点的所有字节点的list(2)将每个节点转换为xmlelement(3)从xmlelement中获取各种名称的数据//获取xml文件TextAssetxml=Resources.Load<TextAsset>(ConstPath.RDNameCfg);if(xml==null)......
  • 几种常用的配置文件格式对比分析——ini、json、xml、toml、yaml
    配置文件用于存储软件程序的配置信息,以便程序能够根据这些信息进行自定义和调整。常用的配置文件格式包括INI、XML、JSON和YAML。下面对它们进行简单介绍,并分析各自的优缺点。1.INI文件格式简介:INI(Initialization)文件是一种简单的配置文件格式,通常由节(section)、键(key)和......
  • python系列:Python3 XML处理模块详解
    Python3XML处理模块详解Python3XML处理模块详解一:XML文件格式二:ElementTree解析XML文件Element常用属性如下:1、tag2、attrib3、text4、childelements三:Element之查找四:Element之修改五:Element之删除六:Element之增加七:Element之排序Python3XML处理模块详解x......
  • VOC数据格式转YOLO(xml转txt)
            近日想训练yolov8模型,在网上找了很久公开数据集,好多都没有数据标注,好不容易找到一篇好的数据集,但是都是xml格式的,因此得想办法把xml格式转为yolo格式。    首先观察xml数据集格式:我圈出来比较重要的几条filename:就是xml标签所对应的图片的名字wid......