【问题标题】:.NET Paste some content from one XML to another XML File.NET 将一些内容从一个 XML 粘贴到另一个 XML 文件
【发布时间】:2020-12-22 18:47:01
【问题描述】:

我试图从一个 .xml 文件中复制一定“范围”的元素并将它们“粘贴”到另一个文件中。我正在使用 REGEX 从一个 .xml 复制“范围”。这部分工作正常。

Public Function ParseCalibrationFile(ByVal ocalcFile As String) Implements IXmlServices.ParseCalibrationFile

    Dim poleImages As String = Nothing

    Try

        Dim imageData As String = File.ReadAllText(ocalcFile.ToString)

        poleImages = Regex.Match(imageData, "((?s)        <PoleImages>(.*?)        <\/PoleImages>)", RegexOptions.IgnoreCase).Value.ToString


    Catch ex As Exception

        Omitted on purpose

    End Try

    Return poleImages

End Function

这会将poleImages 作为下面列出的字符串返回,这正是我所需要的。这部分效果很好。

当我将其粘贴到其他 .xml 时,格式“被吹散”了。我得到以下信息,请注意 PoleImages 应该位于 PPLChildElements 下方的下一行:

我目前正在使用 XmlTextWriter 创建我的 .xml。并使用 WriteString 来“粘贴”复制的信息。我尝试了其他一些没有运气的事情。 WiteCData 让我最接近,保持格式,但显然我不能使用它。

有人对如何更好地“粘贴”这个有任何建议吗?

【问题讨论】:

  • 你在粘贴什么?什么编辑器?看起来 XML 就像内容一样被转义,而不是被视为 XML。您可能只是考虑在您的代码中执行此操作,以避免某些编辑器对内容进行更改。祝你好运。
  • 解析 XML 的方法只有一种,那就是 XML 解析器。任何使用 XML 正则表达式的解决方案(提取信息或修改 XML 源)都是错误的。使用 XML API(例如 .NET 的 System.Xml.XmlDocument)加载和修改输入文档。
  • @Tomalak 谢谢,你能给我一些关于如何做到这一点的例子/教程吗?我是编写 XML 的新手。我尝试粘贴的 XML 是使用 XML API 创建的。 99% 我是从代码中创建的。最后一部分是将此“复制”部分添加到通过代码创建的内容的末尾。不幸的是,我不能“硬”编码它,因为它每次都不一样。
  • 您必须展示更多代码。只要您仍在使用 XML,就不应将其转换为带有 XmlTextWriter 的字符串,就像您目前正在做的那样。您应该将其保留为 XmlDocument 或您正在使用的任何内容。在 .NET 中如何使用 XML 的例子不胜枚举,你不需要我给你指出一个。

标签: .net xml copy paste


【解决方案1】:

我能够通过使用 WriteRaw 使用我解析的字符串使其工作。我仍然使用 REGEX 从 XML 文件中解析,然后获取该字符串:

Dim poleImageData As String = ParseCalibrationFile(calibrationFileLocation)

        xmlWriter.WriteRaw(Environment.NewLine)
        xmlWriter.WriteRaw(poleImageData)
        xmlWriter.WriteRaw(Environment.NewLine)

我必须在 WriteRaw 之前和之后添加一些 NewLine。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    相关资源
    最近更新 更多