首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动格式化长outerXml字符串

自动格式化长outerXml字符串
EN

Stack Overflow用户
提问于 2015-07-10 14:52:07
回答 2查看 357关注 0票数 0

我有多个大型XML文件,并试图提取特定元素及其子元素的5个实例。我已经设置好了代码,但是,我必须使用StreamWriter来编写xml。我怎样才能做到这一点,使它适当地缩进,等等。

该字符串看起来类似于以下内容:

代码语言:javascript
复制
<SampleMAIN><Sample type="1"><Sample_Batch>123
</Sample_Batch><SampleMethod>
</SampleMethod>
</Sample></SampleMAIN>

我想让它看起来像这样

代码语言:javascript
复制
<SampleMAIN>
    <Sample type="1">
        <Sample_Batch>123
    </Sample_Batch>
        <SampleMethod>1
    </SampleMethod>
</SampleMAIN>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-16 17:45:22

因此,对于任何可能遇到这件事并对我如何解决它感兴趣的人,以下是我所用的.

代码语言:javascript
复制
    Dim dir As New DirectoryInfo("D:\data")
    Dim sw As New StreamWriter("C:\Documents\largeFile.xml")
    Dim xd As New XmlDocument
    Dim iCount As Integer

    sw.WriteLine("<?xml version=""1.0"" encoding=""ISO-8859-1""?>" & vbCrLf & "<Root>")

    For Each fi As FileInfo In dir.GetFiles()
        xd.Load(fi.FullName)
        iCount = 0

        For Each xn As XmlNode In xd.SelectNodes("//Root")          
            For Each xe As XmlElement In xn.ChildNodes
                iCount += 1
                sw.WriteLine(xe.OuterXml.ToString)
                If iCount = 5 Then Exit For
            Next
            Exit For
        Next

    Next

    sw.WriteLine("</Root>")

    sw.Flush() : sw.Close() : sw.Dispose()
票数 0
EN

Stack Overflow用户

发布于 2015-07-11 23:19:22

通过使用StreamWriter,下面的代码将输出所需的格式,并附加到现有的xml文件中。

代码语言:javascript
复制
Private Sub Button1_Click(sender As System.Object, _
                          e As System.EventArgs) Handles Button1.Click

    Dim sw As System.IO.StreamWriter

    Dim St As String = "1"
    Dim Sb As String = "123"
    Dim Sm As String = "1"

    sw = File.AppendText("C:\XML_Files\sampler_02.xml")
    sw.WriteLine("<SampleMAIN>")
    sw.WriteLine("    <Sample type=" & """" & St & """" & ">")
    sw.WriteLine("        <Sample_Batch>" & Sb)
    sw.WriteLine("    </Sample_Batch>")
    sw.WriteLine("        <SampleMethod>" & Sm)
    sw.WriteLine("    </SampleMethod>")
    sw.WriteLine("</SampleMAIN>")
    sw.Close()

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31343886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档