【发布时间】:2019-12-03 09:53:23
【问题描述】:
如果标签没有任何值,我会从数据库中获取 XML,那么标签将是 <tag />。请参阅下面的示例 XML
<?xml version="1.0" encoding="UTF-8"?>
<Message>
<Header>
<To Qualifier="P">XXXXXX</To>
<From Qualifier="D">YYYYYYYYY</From>
</Header>
<Body>
<TestData>
<Date>mm-dd-yyyy</Date>
<Identifier></Identifier>
</TestData>
</Body>
</Message>
它显示为
但预期应该是
请帮帮我
下面是使用的C#代码
private void Form1_Load(object sender, EventArgs e)
{
XmlDataDocument xmldoc = new XmlDataDocument();
XmlNode xmlnode;
FileStream fs = new FileStream(@"<FilePath>", FileMode.Open, FileAccess.Read);
xmldoc.Load(fs);
xmlnode = xmldoc.ChildNodes[1];
treeView1.Nodes.Clear();
treeView1.Nodes.Add(new TreeNode(xmldoc.DocumentElement.Name));
TreeNode tNode;
tNode = treeView1.Nodes[0];
AddNode(xmlnode, tNode);
treeView1.ExpandAll();
}
private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i = 0;
if (inXmlNode.HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);
}
}
else
{
inTreeNode.Text = inXmlNode.InnerText.ToString();
}
}
【问题讨论】:
-
为什么不调试你的代码,单步执行它并最终找到向树添加/设置空字符串的点?您甚至可以使用数据断点。
-
@Keim,你投反对票了吗?是否有任何信息缺失或问题不正确?