Я заполняю текстовые поля информацией из определенного узла на основе его ConfirmNum
. Затем, когда вся информация обновляется, я сохраняю информацию (с помощью кнопки отправки) обратно на конкретный узел.
Однако при сохранении каждый узел в XML-файле, который был пустым , возвращается к другой строке.
Пример XML перед сохранением:
<OnlineBanking>
<Transactions>
<Txn>
<Login></Login>
<UserName>userName</UserName>
<CustomerName>CustomerName</CustomerName>
<ConfirmNum>1234</ConfirmNum>
</Txn>
</Transactions>
</OnlineBanking>
Мой код (ниже) сохранит информацию для этого узла на основе номера Page.aspx?CID=1234
. Однако каждый узел во всем XML-файле, который был пустым, теперь будет иметь разрыв строки. Не только Txn
, который мы только что отредактировали, но и все.
Вот мой код:
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 после сохранения:
<OnlineBanking>
<Transactions>
<Txn>
<Login>
</Login>
<UserName>userName</UserName>
<CustomerName>CustomerName</CustomerName>
<ConfirmNum>1234</ConfirmNum>
</Txn>
</Transactions>
</OnlineBanking>
Обратите внимание, что <login>
находится на другой строке, чем </login>
. Это то, о чем я говорю. Надеюсь, кто-то может ясно видеть, что я не делаю.