首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XML文件中保存特定节点

在XML文件中保存特定节点
EN

Stack Overflow用户
提问于 2011-07-14 20:16:19
回答 2查看 2.7K关注 0票数 0

我正在根据特定节点的ConfirmNum填充文本框中的信息。然后,当更新所有信息时,我将信息(通过提交按钮)保存回特定节点。

但是,保存后,文件中每个为空的节点都会下降到另一行。

保存前的示例XML:

代码语言:javascript
复制
<OnlineBanking>
  <Transactions>
    <Txn>
      <Login></Login>
      <UserName>userName</UserName>
      <CustomerName>CustomerName</CustomerName>
      <ConfirmNum>1234</ConfirmNum>
    </Txn>
  </Transactions>
</OnlineBanking>

我的代码(下面)将根据Page.aspx?CID=1234编号为该节点保存信息。但是,整个XML文件中的每个节点都是空的,现在它将有一个行中断。不仅仅是我们刚刚编辑的Txn,而是所有的。

这里是我的代码:

代码语言:javascript
复制
protected void btnSubmit_Click(object sender, EventArgs e)
{
    XmlDocument item = new XmlDocument();
    item.Load(xmlFileName);
    if (CID != "")
    {
        XmlNode xlist = item.SelectSingleNode("OnlineBanking/Transactions/Txn[ConfirmNum=" + CID + "]");
        if (xlist != null)
        {
            xlist.ChildNodes.Item(0).InnerText = tbLogin.Text;
            xlist.ChildNodes.Item(1).InnerText = tbUserName.Text;
            xlist.ChildNodes.Item(2).InnerText = tbCustomerName.Text;
            item.Save(xmlFileName);
        }
    }
}

保存后的示例XML:

代码语言:javascript
复制
<OnlineBanking>
  <Transactions>
    <Txn>
      <Login>
      </Login>
      <UserName>userName</UserName>
      <CustomerName>CustomerName</CustomerName>
      <ConfirmNum>1234</ConfirmNum>
    </Txn>
  </Transactions>
</OnlineBanking>

注意<login>是如何在另一行上而不是</login>上的。这就是我要说的。希望有人能清楚地看到我没在做什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-14 20:22:16

尝试将PreserveWhitespace属性设置为True,并查看它在调用Save时是否会停止插入换行:

代码语言:javascript
复制
XmlDocument item = new XmlDocument();
item.PreserveWhitespace = true;
item.Load(xmlFileName);
票数 0
EN

Stack Overflow用户

发布于 2011-07-14 20:33:10

一个折衷办法是:

代码语言:javascript
复制
if(string.IsNullOrWhiteSpace(tbLogin.Text))
   xlist.ChildNodes.Item(0).IsEmpty = true;
else
   xlist.ChildNodes.Item(0).InnerText = tbLogin.Text;

这将给你:

代码语言:javascript
复制
<Login />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6699410

复制
相关文章

相似问题

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