xml 替换节点内容

来源:互联网 发布:卫生监督网络培训平台 编辑:程序博客网 时间:2024/05/16 15:09

原来的结果:

<STD>
<STD_ITEM>
<stdscn>北京大学</stdscn><stddty><![CDATA[计算机科学与技术]]></stddty>
<stdbdt>20040901</stdbdt><stdedt>20080701</stdedt><stdtel>3</stdtel><stdmark>N</stdmark>
</STD_ITEM>
<STD_ITEM>
<stdscn>清华大学</stdscn><stddty><![CDATA[信息工程]]></stddty>
<stdbdt>20100707</stdbdt><stdedt>20100723</stdedt><stdtel>3</stdtel><stdmark>N</stdmark>
</STD_ITEM>
</STD>

我想要的结果是: 把对应的学校名称改成对应的学校ID

</STD>
<STD_ITEM>
<stdscn>1001</stdscn><stddty>计算机科学与技术</stddty>
<stdbdt>20040901</stdbdt><stdedt>20080701</stdedt><stdtel>3</stdtel><stdmark>N</stdmark>
</STD_ITEM>
<STD_ITEM>
<stdscn>1002</stdscn><stddty>信息工程</stddty>
<stdbdt>20100709</stdbdt><stdedt>20100723</stdedt><stdtel>3</stdtel><stdmark>N</stdmark>
</STD_ITEM>
</STD>

 

可以实现,但还没有完善的方法:

            string strStdxml = hidden_std_xml.Value;
            strStdxml = strStdxml.Replace("&", " ");//特殊字符处理

            XmlDocument xmlDom = new XmlDocument();
            xmlDom.LoadXml(strStdxml);

            XmlNodeList objXmlNodes = xmlDom.SelectNodes("//STD/STD_ITEM");

            string strstd="";
            foreach (XmlNode node in objXmlNodes)
            {
                string schoolName = node.SelectSingleNode("//stdscn").InnerText.Trim();
                string EducationalSchoolId;

                DataSet ds = stdOperatorQCS.GetStdSchoolAll(schoolName);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    EducationalSchoolId = ds.Tables[0].Rows[0]["schoolId"].ToString().Trim();
                }
                else
                {
                    EducationalSchoolId = schoolName;
                }
                node.SelectSingleNode("//stdscn").InnerText = EducationalSchoolId.ToString().Trim();

                string str = "<STD_ITEM><stdscn>" + node.SelectSingleNode("//stdscn").InnerText.Trim() + "</stdscn>" +
                        "<stddty>" + node.SelectSingleNode("//stddty").InnerText.Trim() + "</stddty>" +
                        "<stdbdt>" + node.SelectSingleNode("//stdbdt").InnerText.Trim() + "</stdbdt>" +
                        "<stdedt>" + node.SelectSingleNode("//stdedt").InnerText.Trim() + "</stdedt>" +
                        "<stdtel>" + node.SelectSingleNode("//stdtel").InnerText.Trim() + "</stdtel>" +
                        "<stdmark>" + node.SelectSingleNode("//stdmark").InnerText.Trim() + "</stdmark></STD_ITEM>";

                if (strstd == "")
                {
                    strstd = str;
                }
                else
                {
                    strstd = strstd + str;
                }
                //xmlDom.Save("e://1.xml");
                node.RemoveAll();
            }
            strStdxml = "<STD>"+strstd+"</STD>";

 

原创粉丝点击