你好我得到了这个xml文件
Tanya Milenova Marinova 普罗夫迪夫4000,bul。瓦西里·朱诺夫115 0899803698
所以我尝试逐行读取xml文件并在标签中获取元素名称或属性名称 - 以及文本框中的元素值或属性值(以便用户可以进行更改)
int i = 0;
XmlTextReader rdr = new XmlTextReader("E:/Tanya Documents/Stanga1Projects/XML_project_Tanya_Marinova/cv.xml");
while (rdr.Read())
{
if (rdr.NodeType == XmlNodeType.Element)
{
Label nodeName = new Label();
nodeName.Text = rdr.LocalName+": ";
Page.FindControl("form1").Controls.Add(nodeName);
if (i != 1)
{
XmlReader pReader = rdr.ReadSubtree();
while (pReader.Read())
{
if (pReader.NodeType == XmlNodeType.Text)
{
TextBox txtBox = new TextBox();
txtBox.Text = rdr.Value;
Page.FindControl("form1").Controls.Add(txtBox);
}
if (pReader.NodeType == XmlNodeType.Element)
{
for (int t = 0; t < rdr.AttributeCount; t++)
{
/* ...Here I want a label with attribute name not value)*/
TextBox txbAttribute = new TextBox();
txbAttribute.Text = rdr.GetAttribute(t);
Page.FindControl("form1").Controls.Add(txbAttribute);
}
}
}
}
Page.FindControl("form1").Controls.Add(new LiteralControl("<br />"));
}
i++;
}
一切正常但是当我进入'education'元素 - 其中有childNodes - 带有属性的元素 - 我只能通过'getAttributes'方法得到属性值,但我无法得到他们的名字
非常感谢
答案 0 :(得分:1)
你能沿着这些方向尝试一下吗?通过MSDN
中的示例进行轻微修改以适合您的实施 if (pReader.NodeType == XmlNodeType.Element)
{
if (pReader.HasAttributes)
{
while (pReader.MoveToNextAttribute())
{
/* ...Here I want a label with attribute name not value)*/
Label lblAttribute = new Label();
lblAttribute.Text = pReader.Name;
TextBox txbAttribute = new TextBox();
txbAttribute.Text = pReader.Value;
Page.FindControl("form1").Controls.Add(txbAttribute);
}
// Move the reader back to the element node.
reader.MoveToElement();
}
}