求读取xml 节点的方法,

whaisheng 2015-09-12 10:11:35
以下xml怎样读取所有节点,试很多方法都不行,新手。

<?xml version="1.0" encoding="utf-8"?>
- <Z_READ_PRODUCTION_ORDER_YP124 xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<P_LISTER>test</P_LISTER>
<IT_AUFNR>
<connect>
<IT_AUFNR>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>5</ZORDER>
<AUFNR></AUFNR>
<ZNUM></ZNUM>
<ZSIZE></ZSIZE>
<ZCOLOR></ZCOLOR>
<ZQTY></ZQTY>
<TMATNR>JINSHU/JIEZI</TMATNR>
<WGBEZ>金屬介子(配件)</WGBEZ>
<POSI></POSI>
<CLENTXT></CLENTXT>
</IT_AUFNR>
<IT_AUFNR>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>6</ZORDER>
<AUFNR></AUFNR>
<ZNUM></ZNUM>
<ZSIZE></ZSIZE>
<ZCOLOR></ZCOLOR>
<ZQTY></ZQTY>
<TMATNR>KI/MB363-K</TMATNR>
<WGBEZ>圈鉸(裝配)</WGBEZ>
<POSI></POSI>
<CLENTXT></CLENTXT>
</IT_AUFNR>
<IT_AUFNR>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>7</ZORDER>
<AUFNR></AUFNR>
<ZNUM></ZNUM>
<ZSIZE></ZSIZE>
<ZCOLOR></ZCOLOR>
<ZQTY></ZQTY>
<TMATNR>OA/12568</TMATNR>
<WGBEZ>夾口(燒焊)</WGBEZ>
<POSI></POSI>
<CLENTXT></CLENTXT>
</IT_AUFNR>
<IT_AUFNR>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>8</ZORDER>
<AUFNR></AUFNR>
<ZNUM></ZNUM>
<ZSIZE></ZSIZE>
<ZCOLOR></ZCOLOR>
<ZQTY></ZQTY>
<TMATNR>OBE/02910</TMATNR>
<WGBEZ>(夾口或鉸鏈)膠螺絲</WGBEZ>
<POSI></POSI>
<CLENTXT></CLENTXT>
</IT_AUFNR>
<IT_AUFNR>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>9</ZORDER>
<AUFNR></AUFNR>
<ZNUM></ZNUM>
<ZSIZE></ZSIZE>
<ZCOLOR></ZCOLOR>
<ZQTY></ZQTY>
<TMATNR>SH/MB-125</TMATNR>
<WGBEZ>自制鼻樑</WGBEZ>
<POSI></POSI>
<CLENTXT></CLENTXT>
</IT_AUFNR>
<IT_AUFNR>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>10</ZORDER>
<AUFNR></AUFNR>
<ZNUM></ZNUM>
<ZSIZE></ZSIZE>
<ZCOLOR></ZCOLOR>
<ZQTY></ZQTY>
<TMATNR>SH/NK-268</TMATNR>
<WGBEZ>自制銅芯</WGBEZ>
<POSI></POSI>
<CLENTXT></CLENTXT>
</IT_AUFNR>
</connect>
</IT_AUFNR>
<IT_BASIC>
<connect>
<IT_BASIC>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<VBELN>AXF00127</VBELN>
<PROTYPE>A</PROTYPE>
<CRT_ID>HEIBO</CRT_ID>
<CRT_DATE>8/19/2015 12:00:00 AM</CRT_DATE>
<UPD_ID></UPD_ID>
<UPD_DATE>1/1/0001 12:00:00 AM</UPD_DATE>
</IT_BASIC>
</connect>
</IT_BASIC>
<IT_MARK>
<connect>
<IT_MARK>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>1</ZORDER>
<ZTYPE>MOTHER</ZTYPE>
<AUFNR>000011228007</AUFNR>
<MATNR>SH/MB-125</MATNR>
<ZSIZE>55-15-135</ZSIZE>
<CLENTXT>11228004</CLENTXT>
</IT_MARK>
<IT_MARK>
<MANDT>800</MANDT>
<ZNUMB>150819000002</ZNUMB>
<ZORDER>2</ZORDER>
<ZTYPE>MOTHER</ZTYPE>
<AUFNR>000011228008</AUFNR>
<MATNR>SH/NK-268</MATNR>
<ZSIZE>55-15-135</ZSIZE>
<CLENTXT>11228004</CLENTXT>
</IT_MARK>
</connect>
</IT_MARK>
</Z_READ_PRODUCTION_ORDER_YP124>
...全文
118 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolcalf 2015-09-12
  • 打赏
  • 举报
回复
你这是调用服务后,得到的SOAP格式的返回数据 我的困扰恰好和你相反,是WCF如何返回指定格式的XML
全栈极简 2015-09-12
  • 打赏
  • 举报
回复
以读取IT_AUFNR下的节点为例,IT_BASIC、IT_MARK类似。
class Program
    {
        static void Main(string[] args)
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("test.xml");

            List<IT_AUFNR> IT_AUFNRList = new List<IT_AUFNR>();
            var IT_AUFNRNodes = xmlDoc.SelectSingleNode("Z_READ_PRODUCTION_ORDER_YP124/IT_AUFNR/connect").ChildNodes;
            foreach (XmlNode node in IT_AUFNRNodes)
            {
                IT_AUFNRList.Add(new IT_AUFNR()
                {
                    MANDT = node.SelectSingleNode("MANDT").InnerText,
                    ZNUMB = node.SelectSingleNode("ZNUMB").InnerText,
                    ZORDER = node.SelectSingleNode("ZORDER").InnerText,
                    AUFNR = node.SelectSingleNode("AUFNR").InnerText,
                    ZNUM = node.SelectSingleNode("ZNUM").InnerText,
                    ZSIZE = node.SelectSingleNode("ZSIZE").InnerText,
                    ZCOLOR = node.SelectSingleNode("ZCOLOR").InnerText,
                    ZQTY = node.SelectSingleNode("ZQTY").InnerText,
                    TMATNR = node.SelectSingleNode("TMATNR").InnerText,
                    WGBEZ = node.SelectSingleNode("WGBEZ").InnerText,
                    POSI = node.SelectSingleNode("POSI").InnerText,
                    CLENTXT = node.SelectSingleNode("CLENTXT").InnerText,
                });
            }
        }
    }

    public class IT_AUFNR
    {
        public string MANDT { get; set; }
        public string ZNUMB { get; set; }
        public string ZORDER { get; set; }
        public string AUFNR { get; set; }
        public string ZNUM { get; set; }
        public string ZSIZE { get; set; }
        public string ZCOLOR { get; set; }
        public string ZQTY { get; set; }
        public string TMATNR { get; set; }
        public string WGBEZ { get; set; }
        public string POSI { get; set; }
        public string CLENTXT { get; set; }
    }
whaisheng 2015-09-12
  • 打赏
  • 举报
回复
已解决,xml 从远端系统取的,需要转换下: var content = webClient.DownloadString(uri); content = content.Replace("<", "<").Replace(">", ">")
  • 打赏
  • 举报
回复
看起来就是一个主类,包含了几个属性以及三个集合,没什么特殊的,等有空在电脑上用vs写个反序列化
exception92 2015-09-12
  • 打赏
  • 举报
回复
怎么个不行法。 - <Z_READ_PRODUCTION_ORDER_YP124 xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 有红色部分么
whaisheng 2015-09-12
  • 打赏
  • 举报
回复
再帮忙看下,出错了.找不到原因:

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧