首页
学习
活动
专区
圈层
工具
发布

01-ShapeDelete静默无效与XML手术

——COM 静默失效的排查与 XML 手术绕行方案 本文记录一次真实的排查过程。...结论先放前面:Shape.Delete 的"静默无效"只发生在从外部进程调 COM 这条路;写进 VBA 过程里执行是有效的(2.1 有实测数据)。...只有这两种情况才值得下下面的笨功夫:要求文件里不留任何多余代码,或者不想让文件跑宏 / 文件根本打不开(比如一打开就弹登录框、或者不是 .xlsm)。...2.2 另一个会把自己骗过去的假象:形状"删了又回来" 在把结论定性成"删除无效"之前,必须先排除这一种情况:形状确实被删掉了,但工作簿自己的代码下次打开时又把它建了回来。...跳过 2.2 直接下"COM 无效"的结论,会白折腾一轮。

14410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    XML的约束——DTD

    简单来说:文档类型定义(约束) 规范一点就是:是一套关于标记符的语法规则。它是XML1.0版规格的一部分,是XML文件的验证机制,属于XML文件组成的一部分。...XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能成为数据交换标准,因为不同的公司只需定义好标准DTD,各公司都能依DTD建立XML文件,并且进行验证,如此就可以轻易的建立标准和交换数据...一些模式是随意组成的(例如,本文中的示例XML代码纯粹是即兴创作的),而其他模式则由标准组织严格定义。...最基本的模式通常也是最严格的。在我的示例XML代码中,将发行版名称放在节点中是没有意义的,因为文档的隐含模式清楚地表明 mascot必须是发行版的“子”元素。 ) 3.XML的两种文档约束(的树结构所造成的,这种结构占用的内存较多) 4.XML格式要求(合法XML)     1)有且只有一个根节点;     2)由开始标签和结束标签组成;     3)XML标签区分大小写

    1.3K30

    【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 删除 Xml 文件中的节点 | 增加 Xml 文件中的节点 | 将修改后的 Xml 数据输出到文件中 )

    文章目录 一、删除 Xml 文件中的节点 二、增加 Xml 文件中的节点 三、将修改后的 Xml 数据输出到文件中 四、完整代码示例 一、删除 Xml 文件中的节点 ---- 在 【Groovy】Xml...反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 ) 博客基础上 , 删除 Xml 文件中的节点信息 ; 下面是要解析的...文件中的节点 ---- 增加 Xml 文件中的节点 , 调用 appendNode 方法 , 可以向节点插入一个子节点 ; // 添加节点 xmlParser.appendNode("height",..."175cm") 三、将修改后的 Xml 数据输出到文件中 ---- 创建 XmlNodePrinter 对象 , 并调用该对象的 print 方法 , 传入 XmlParser 对象 , 可以将该...File("a.xml") // 创建 Xml 文件解析器 def xmlParser = new XmlParser().parse(xmlFile) // 获取 xml 文件下的

    14K40

    【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )

    文章目录 一、创建 XmlParser 解析器 二、获取 Xml 文件中的节点 三、获取 Xml 文件中的节点属性 四、完整代码示例 一、创建 XmlParser 解析器 ---- 创建 XmlParser...解析器 , 传入 Xml 文件对应的 File 对象 ; // 要解析的 xml 文件 def xmlFile = new File("a.xml") // 创建 Xml 文件解析器 def xmlParser...文件中的节点 ---- 使用 xmlParser.name 代码 , 可以获取 Xml 文件中的 节点 , 节点位于根节点下, 可以直接获取 , 由于相同名称的节点可以定义多个...文件中的节点属性 ---- XmlParser 获取的节点类型是 Node 类型对象 , 调用 Node 对象的 attributes() 方法 , 可获取 Xml 节点的属性 ; // 获取 name...= new File("a.xml") // 创建 Xml 文件解析器 def xmlParser = new XmlParser().parse(xmlFile) // 获取 xml 文件下的

    14.9K20

    没有XML声明的XML,到底能不能解析

    XML声明不是必须的很多人以为XML文档必须以xml...?>开头,这是误解。XML规范里说得清楚:XML声明是可选的。解析器遇到一个文档,如果它以的解析器会警告虽然大部分解析器不强制要求XML声明,但有些严格的工具(比如某些XMLSchema验证器、老旧的企业级XML处理器)会给出警告,说“缺少XML声明”。...不过说实话,99%的场景用不到XML1.1的特性,这个坑一般人踩不到。XML片段和完整文档的区别这就引出一个更重要的概念:XML片段和完整XML文档不是一回事。...:XMLAI代码解释苹果香蕉橘子它有多个根级别的元素,不符合良构XML的要求。...如果你是消费者(解析XML的一方):不要假设对方一定会加XML声明。做好编码检测,或者在解析失败时尝试不同的编码。处理XML片段:如果收到的数据是片段,手动包一层根元素再解析。

    13000

    JSON 与 XML 的比较

    JSON 与 XML 的全面比较:开发者选择数据交换格式的指南 摘要 大家好,我是默语,擅长全栈开发、运维和人工智能技术。在本篇博客中,我们将深入探讨 JSON 和 XML 两种数据交换格式。...XML 的可扩展性和自描述性使其成为一种强大的数据格式,但也使得它比 JSON 更为冗长。...JSON 与 XML 的详细比较 2.1 可读性与可写性 JSON 的语法更简单、直观,易于阅读和编写,而 XML 则依赖于标签,语法相对复杂。...这是因为 JSON 的结构更简单,没有复杂的标签和属性。 示例: JSON 数据的体积通常比等效的 XML 数据小30%左右。 2.3 可扩展性与灵活性 XML 的最大优势在于其可扩展性和自描述性。...3.2 XML 的使用场景 配置文件:例如 Spring 框架中的配置文件,利用 XML 的自描述性和验证机制。 文档传输:例如 SOAP 协议中的消息传递,依赖于 XML 的严格格式和验证。

    1.2K10
    领券