- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 XMLWriter 没有关闭时遇到了一些麻烦。我可以成功写入一次 XML 文件,但是如果我尝试再次写入(覆盖),则会出现异常:
“该进程无法访问文件 'somefile.xml',因为它正被另一个进程使用。”
Dim settings = New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = " "
settings.NewLineOnAttributes = True
Try
Dim writer As XmlWriter = XmlWriter.Create(System.IO.File.Create("somefile.xml"))
writer.WriteStartDocument(True)
writer.WriteStartElement("root")
For rowCounter As Integer = ds.Tables(0).Rows.Count - 1 To 0 Step -1
writer.WriteStartElement("someelement")
writer.WriteElementString("col0", ds.Tables(0).Rows(rowCounter)(0).ToString)
writer.WriteElementString("col1", ds.Tables(0).Rows(rowCounter)(1).ToString)
writer.WriteElementString("col2", ds.Tables(0).Rows(rowCounter)(2).ToString)
writer.WriteElementString("col3", ds.Tables(0).Rows(rowCounter)(3).ToString)
writer.WriteElementString("col4", ds.Tables(0).Rows(rowCounter)(4).ToString)
writer.WriteElementString("col5", ds.Tables(0).Rows(rowCounter)(5).ToString)
writer.WriteElementString("col6", ds.Tables(0).Rows(rowCounter)(6).ToString)
writer.WriteElementString("col7", ds.Tables(0).Rows(rowCounter)(7).ToString)
writer.WriteEndElement()
Next
writer.WriteEndElement()
writer.WriteEndDocument()
Catch ex As System.IO.IOException
MessageBox.Show(ex.Message)
Finally
writer.Flush()
writer.Close()
End Try
最佳答案
你缺少的是XmlWriterSettings
.你声明它,但你不使用它,当你不设置时CloseOutput
手动,默认值为 false,这意味着输出未关闭(在这种情况下是您的文件流)。
要让它按照您想要的方式运行,请像这样更改代码:
Dim settings = New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = " "
settings.NewLineOnAttributes = True
settings.CloseOutput = True ' <<<< the change '
Using writer As XmlWriter = XmlWriter.Create(System.IO.File.Create("somefile.xml"), settings)
'.... etc'
End Using
Close
XmlEncodedRawTextWriterIndent 的方法,您的场景中使用的内部 XmlWriter。
// courtesy of Red Gate's Reflector
public override void Close()
{
this.FlushBuffer();
this.FlushEncoder();
this.writeToNull = true;
if (this.stream != null)
{
this.stream.Flush();
if (this.closeOutput) //this flag is set to settings.CloseOutput
{
this.stream.Close();
}
this.stream = null;
}
else if (this.writer != null)
{
this.writer.Flush();
if (this.closeOutput)
{
this.writer.Close();
}
this.writer = null;
}
}
关于.net - 为什么 XMLWriter 没有关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205947/
我想知道 XmlWriter.WriteStartDocument() 背后的原因和 XmlWriter.WriteEndDocument() . 在我的场景中,我正在创建一个包含一些数据的 XML
我想使用 XMLWriter 在 XML 文档之上生成一个嵌套的实体 DTD 声明。我从不带 XMLWriter 的字符串构建代码开始,它也说明了所需的输出: \n"; $sXML .= "%nest
我正在使用 XmlWriter,我想知道是否有人曾尝试编写带有属性的 xml 元素字符串(叶节点),以便输出看起来像 999 代替 999 最佳答案 您可以使用 WriteString .
我无法理解 XmlWriter 在 C# 中的工作方式。假设以下代码在某处使用过。 StringBuilder builder = new StringBuilder(); XmlWriterSett
我正在使用 XmlWriter 并且正在努力创建以下 XML 标记。 我有以下内容: XmlWriterSettings settings = new XmlWriterSettings(); se
我正在尝试生成符合这种格式的 XML 数据: 由于匿名原因,它显然缺少很多标签。 我正在使用 XmlWriter。 我设法用不同的 WriteStartElement() 和 Write
目前我正在使用 XmlWriter,想问一下如何在现有的 XML 文件中写入,例如: a.xml Test3 100 加入 ,例如 Test1 的位置没有任何作用,但最好写在
我正在使用 XmlWriter 构建一些 xml,使用有效的 xml 文件作为我的模板。在文件中,我有这一行: 所以,我在 C# 中做了这个: writer.WriteStartElement("ds
我有一个问题。我编写了一个程序,将大量数据转换为 VML-GML 格式。问题是我需要使用 XmlWriter... 现在我的方法有问题: private void StartDocument() {
下面是代码。我的问题是,如果我想创建此文件,然后稍后使用 XmlWriter 重新打开它并向当前文件添加更多内容,该怎么做?喜欢使用 XmlWriter 进入并编辑此 xml using System
我在 msdn 文档中找到了异步使用 XmlWriter 的示例 http://msdn.microsoft.com/en-us/library/system.xml.xmlwriter.aspx a
我正在使用 XMLWriter http://www.php.net/manual/en/book.xmlwriter.php让我的网络客户端创建一个 XML 文件。一开始必须有一个具有很多属性的元素
我有一个 WCF 服务需要返回一个 XML 字符串。但似乎作者只想建立一个文件,而不是一个字符串。我试过: string nextXMLstring = ""; using (XmlWriter wr
我正在尝试生成此文档类型字符串: 这是我一直在尝试的: $writer.WriteDocType("games", $null , "transform.dtd", $null ) 我不完全确定如何
我试图将我的应用程序中的一些元素保存在 xml 文件中,但是当我开始使用以下代码开发它时: public static void WriteInFile(string savefilepath)
我有以下代码: MemoryStream ms = new MemoryStream(); XmlWriter w = XmlWriter.Create(ms); w.Writ
本文整理了Java中org.pageseeder.xmlwriter.XMLStringWriter类的一些代码示例,展示了XMLStringWriter类的具体用法。这些代码示例主要来源于Githu
System.Xml.XmlWriter的一个实例正在写入底层 Stream 吗?(不管 XmlWriter 的具体实现是什么) 那么为什么程序员没有方法可以从 XmlWriter 中检索 Strea
我将如何使用 XMlWriter 类创建这个字符串?我不断收到错误。 这是我尝试创建的 XML 字符串: 这是我试图用它生成的代码: using (XmlWriter writer = XmlWri
我在 XMLWriter 没有关闭时遇到了一些麻烦。我可以成功写入一次 XML 文件,但是如果我尝试再次写入(覆盖),则会出现异常: “该进程无法访问文件 'somefile.xml',因为它正被另一
我是一名优秀的程序员,十分优秀!