C# WPF 无法写入 XML 文件
C# WPF Unable to write to XML file
我是 WPF 新手,正在尝试将子节点写入 XML 文件。这是文件...
<?xml version="1.0" encoding="utf-8"?>
<Sequences>
<LastSavedSequence name="Last Saved Sequence">
<Test name="Measure Battery Current(Stim)" testNumber="5" Vbat="3.7" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
<Test name="Measure Batther Current(No Stim)" testNumber="6" Vbat="2.9" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
</LastSavedSequence>
<ScottTestSequence name="Scott Test Sequence">
<Test name="VMO Status" testNumber="4" Vbat="3.7" Frequency="20" PulseWidth="1000" Amplitude="6" Resistance="3000" Anode="1" Cathode="2" ActiveDischarge=""/>
<Test name="Measure Battery Current(Stim)" testNumber="5" Vbat="3.7" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
<Test name="Measure Batther Current(No Stim)" testNumber="6" Vbat="2.9" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
</ScottTestSequence>
</Sequences>
我正在尝试创建一个 XML 子块以放入 中。我使用了 stringBuilder,然后我尝试做一个 attach child 然后一个 .save。 XMLData2 是一个全局列表,包含我在每个列表中获取的子元素。这是我的代码...
public static List<System.Xml.XmlNode> xmlData2 = new List<System.Xml.XmlNode>();
XmlDocument xmlFromOutSideSequenceFile = new XmlDocument();
xmlFromOutSideSequenceFile.Load("c:\Users/StarkS02/Documents/SavedSequenceFile.xml");
StringBuilder exampleNode = new StringBuilder();
exampleNode.Append("<");
exampleNode.Append(tbSequenceName.Text.ToString().Replace(" ", ""));
exampleNode.Append(" name=");
exampleNode.Append("'");
exampleNode.Append(tbSequenceName.Text);
exampleNode.Append("'");
exampleNode.Append(">");
foreach (XmlNode node in xmlData2)
{
XmlElement child = xmlFromOutSideSequenceFile.CreateElement(string.Empty, node.OuterXml, string.Empty);
exampleNode.Append("</");
exampleNode.Append(tbSequenceName.Text.ToString().Replace(" ", ""));
exampleNode.Append(">");
xmlFromOutSideSequenceFile.AppendChild(exampleNode);
xmlFromOutSideSequenceFile.Save("c:\Users/StarkS02/Documents/SavedSequenceFile.xml");
我在 .appendChild 语句中收到编译器错误,提示我无法将 stringBuilder 转换为 XML 节点。这是有道理的,但我不确定如何解决它。有任何想法吗?
您可以创建一个 XML 片段并附加到文档。
var xmlFromOutSideSequenceFile = new XmlDocument();
xmlFromOutSideSequenceFile.Load("c:\Users/StarkS02/Documents/SavedSequenceFile.xml");
有关 DocumentFragment 的更多信息,请参阅此处
var fragment = xmlFromOutSideSequenceFile.CreateDocumentFragment();
fragment.InnerXml = @"<somexml></somexml>";
xmlFromOutSideSequenceFile.DocumentElement.FirstChild.AppendChild(fragment);
有关 XMLNode
的更多信息,请参阅此处
https://msdn.microsoft.com/en-us/library/system.xml.xmlnode(v=vs.110).aspx
决定你想把它放在哪里。
。第一个孩子
。最后一个孩子
.NextSibling
.ParentNode
.PreviousSibling
希望对您有所帮助!干杯!
我是 WPF 新手,正在尝试将子节点写入 XML 文件。这是文件...
<?xml version="1.0" encoding="utf-8"?>
<Sequences>
<LastSavedSequence name="Last Saved Sequence">
<Test name="Measure Battery Current(Stim)" testNumber="5" Vbat="3.7" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
<Test name="Measure Batther Current(No Stim)" testNumber="6" Vbat="2.9" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
</LastSavedSequence>
<ScottTestSequence name="Scott Test Sequence">
<Test name="VMO Status" testNumber="4" Vbat="3.7" Frequency="20" PulseWidth="1000" Amplitude="6" Resistance="3000" Anode="1" Cathode="2" ActiveDischarge=""/>
<Test name="Measure Battery Current(Stim)" testNumber="5" Vbat="3.7" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
<Test name="Measure Batther Current(No Stim)" testNumber="6" Vbat="2.9" Frequency="20" PulseWidth="500" Amplitude="1" Resistance="1600" Anode="1" Cathode="2" ActiveDischarge=""/>
</ScottTestSequence>
</Sequences>
我正在尝试创建一个 XML 子块以放入 中。我使用了 stringBuilder,然后我尝试做一个 attach child 然后一个 .save。 XMLData2 是一个全局列表,包含我在每个列表中获取的子元素。这是我的代码...
public static List<System.Xml.XmlNode> xmlData2 = new List<System.Xml.XmlNode>();
XmlDocument xmlFromOutSideSequenceFile = new XmlDocument();
xmlFromOutSideSequenceFile.Load("c:\Users/StarkS02/Documents/SavedSequenceFile.xml");
StringBuilder exampleNode = new StringBuilder();
exampleNode.Append("<");
exampleNode.Append(tbSequenceName.Text.ToString().Replace(" ", ""));
exampleNode.Append(" name=");
exampleNode.Append("'");
exampleNode.Append(tbSequenceName.Text);
exampleNode.Append("'");
exampleNode.Append(">");
foreach (XmlNode node in xmlData2)
{
XmlElement child = xmlFromOutSideSequenceFile.CreateElement(string.Empty, node.OuterXml, string.Empty);
exampleNode.Append("</");
exampleNode.Append(tbSequenceName.Text.ToString().Replace(" ", ""));
exampleNode.Append(">");
xmlFromOutSideSequenceFile.AppendChild(exampleNode);
xmlFromOutSideSequenceFile.Save("c:\Users/StarkS02/Documents/SavedSequenceFile.xml");
我在 .appendChild 语句中收到编译器错误,提示我无法将 stringBuilder 转换为 XML 节点。这是有道理的,但我不确定如何解决它。有任何想法吗?
您可以创建一个 XML 片段并附加到文档。
var xmlFromOutSideSequenceFile = new XmlDocument();
xmlFromOutSideSequenceFile.Load("c:\Users/StarkS02/Documents/SavedSequenceFile.xml");
有关 DocumentFragment 的更多信息,请参阅此处
var fragment = xmlFromOutSideSequenceFile.CreateDocumentFragment();
fragment.InnerXml = @"<somexml></somexml>";
xmlFromOutSideSequenceFile.DocumentElement.FirstChild.AppendChild(fragment);
有关 XMLNode
的更多信息,请参阅此处https://msdn.microsoft.com/en-us/library/system.xml.xmlnode(v=vs.110).aspx
决定你想把它放在哪里。 。第一个孩子 。最后一个孩子 .NextSibling .ParentNode .PreviousSibling
希望对您有所帮助!干杯!