0

我为读取 XML 文件执行测试的应用程序开发了自动化应用程序。输入文件真的很大。输入 XML 包含属性 BatchId。此属性位于根元素本身中。我想在完成测试后将此属性值修改为 datetime.now 。如果我阅读整个文件,它将影响性能。因为我正在考虑使用相同数据进行一些性能测试。

谢谢, 阿努普

4

2 回答 2

0

安全的方法是使用 XmlReader/XmlWriter 复制 XML,动态修改它。这篇文章很有帮助:Combining the XmlReader and XmlWriter classes for simple streaming transformations

快速而危险的方法是确保原始 XML 文档有一个占位符时间戳,您可以将其替换为新的时间戳(它们的大小必须相等)。使用普通文件流(将文件视为二进制文件)定位属性的位置(例如,通过将前几百字节加载到内存中并搜索属性名称)并使用 seek 和 write 直接在文件中替换它。如果您选择这样做,务必小心。除非您测试所有内容,否则您不考虑的不同编码或其他更改会给您一个损坏的文件。

于 2013-10-22T20:26:34.097 回答
0

创建一个仅包含根元素及其属性的文件,以及对另一个包含根元素内容的文件的实体引用。然后你只需要修改小包装文件。为此,您需要使用不扩展实体引用的 XML 解析器,或者(在这种情况下可能更简单)非 XML 方法。

于 2013-10-23T06:26:59.463 回答