C# 如何在c中使用XML文件节点的根属性打印每个元素#

C# 如何在c中使用XML文件节点的根属性打印每个元素#,c#,xml,C#,Xml,我试图打印根节点“Identity”的每个元素(引用),属性值为“Identity” 例如: 我想打印 00002C8DGPDDTZ5D, S2513.268898, John S2613.269022, JOHN 那就排一行吧 000388MRUO7TRSBH, S2513.285402,Doe, S2613.285476Doe 在另一个等等 如果我没有说清楚,请告诉我 谢谢 XML文件 <Identity Identifier="00002C8DGPDDTZ5D" CDate="

我试图打印根节点“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>

A^S2513.268898 | B^JOHN
A^S2613.269022 | B^JOHN
A^S2513.285402 | B^Doe
A^S2613.285476 | B^Doe
而且

我尝试了以下代码

 XmlNodeList OysterID = doc.GetElementsByTagName("Identity");  
     XmlNodeList Reference = doc.GetElementsByTagName("Value");
 for (int j = 1; j <= i; j++)

                    s[j] = Reference[j].InnerText;
XmlNodeList-id=doc.GetElementsByTagName(“标识”);
XmlNodeList引用=doc.GetElementsByTagName(“值”);
对于(intj=1;j试试这个

        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;
        }
stringxml=@“A^S2513.268898 | B^JOHN A^S2613.269022 | B^JOHN A^S2513.285402 | B^Doe A^S2613.285476 | B^Doe”;
XDocument xmlDoc=XDocument.Parse(xml);
IEnumerable entries=xmlDoc.subjects(“引用”);
foreach(条目中的XElement条目){
字符串温度=输入值;
}

像这样的东西怎么样

        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.. 
        }

输出的格式将不完全符合您的要求,因此需要进行一些格式设置。但您可以将其放在一行:)

您不关闭标识。这不是格式良好的XML。还有,到目前为止你尝试了什么?人们不在这里为你工作……不要担心结束标记。为了将其发布到stackexchange,我删除了结束标记“”,并且尝试了XmlNodeList-OysterID=doc.GetElementsByTagName(“标识”);XmlNodeList引用=doc.GetElementsByTagName(“值”);我对XMl非常幼稚。我只是想学。我可以打印每一份参考资料。但是我想打印具有根属性值的引用。for(int j=1;j A
StringBuilder
可以提高性能,如果有许多
引用
元素(即使用
StringBuilder.append
而不是
String.+=
)。我正在使用XMLDocument加载文件。XMLDocument doc=new XMLDocument();doc.Load(@“C:\ID.idty”);XmlNodeList ID=doc.GetElementsByTagName(“标识”);XmlNodeList Reference=doc.GetElementsByTagName(“值”);“doc”属于什么类?它是一个XDDocument。我更新了我的帖子,所以它应该使用XmlDocument。