我正在尝试打印根节点“Identity”的每个元素(参考),其属性值为“Identity”。
例如:
我想打印
00002C8DGPDDTZ5D, S2513.268898, John S2613.269022, JOHN
在一行中然后是
000388MRUO7TRSBH, S2513.285402,Doe, S2613.285476Doe
在另一个等等。
如果我不清楚,请告诉我。
由于
XML文件
<Identity Identifier="00002C8DGPDDTZ5D" CDate="2013-02-07">
<References>
<Reference>
<Value>A^S2513.268898|B^JOHN</Value>
<Traces/>
</Reference>
<Reference>
<Value>A^S2613.269022|B^JOHN</Value>
<Traces/>
</Reference>
</References>
<Identity Identifier="000388MRUO7TRSBH" CDate="2013-02-07">
<References>
<Reference>
<Value>A^S2513.285402|B^Doe</Value>
<Traces/>
</Reference>
<Reference>
<Value>A^S2613.285476|B^Doe</Value>
<Traces/>
</Reference>
</References>
另外,
我尝试了以下代码。
XmlNodeList OysterID = doc.GetElementsByTagName("Identity");
XmlNodeList Reference = doc.GetElementsByTagName("Value");
for (int j = 1; j <= i; j++)
s[j] = Reference[j].InnerText;
我想要类似的东西。我想要一个for循环,它将使用root属性值打印根的每个元素。我无法想到如何获得每个元素的root属性值。
答案 0 :(得分:1)
这样的事情
foreach (XmlNode element in xmlDocument.GetElementsByTagName("Identity"))
{
string output = element.Attributes[0].Value;
foreach (XmlNode xmlNode in element.ChildNodes)
{
foreach (XmlNode reference in xmlNode.ChildNodes)
{
output += reference.InnerText;
}
}
//Output here should be onelined..
}
输出的格式不会完全符合您的要求,因此需要进行一些格式化。但你会在一条线上拥有它:)
答案 1 :(得分:0)
试试这个。
string xml = @"<Identity Identifier=""00002C8DGPDDTZ5D"" CDate=""2013-02-07""> <References> <Reference> <Value>A^S2513.268898|B^JOHN</Value> <Traces/> </Reference> <Reference> <Value>A^S2613.269022|B^JOHN</Value> <Traces/> </Reference> </References> <Identity Identifier=""000388MRUO7TRSBH"" CDate=""2013-02-07""> </Identity> <References> <Reference> <Value>A^S2513.285402|B^Doe</Value> <Traces/> </Reference> <Reference> <Value>A^S2613.285476|B^Doe</Value> <Traces/> </Reference> </References> </Identity> ";
XDocument xmlDoc = XDocument.Parse(xml);
IEnumerable<XElement> entries = xmlDoc.Descendants("Reference");
foreach (XElement entry in entries) {
string temp = entry.Value;
}