.NET操作XML测试

使用的例子如下: 
    public  class CarPosition

    {

        private string xmlString = @"<ROOT><car ID='车辆编号'><lng>经度</lng><lat>纬度</lat><tm>时间</tm></car></ROOT>";

        private XmlDocument xmlDoc ;

        public CarPosition()

        {

            xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(xmlString);

        }



        public string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                strRet = strRet + xmlNode.InnerText;

            }

            return strRet;

        }

    }
为了方便看出XML文档的结构,再粘一下:
<ROOT>

	<car ID=’车辆编号’>

		<lng>经度</lng>

		<lat>纬度</lat>

		<tm>时间</tm>

	</car>

</ROOT>
调用ToString方法,结果如下:

image

将ToString方法改成如下:

        public override  string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                strRet = strRet + xmlNode.Name ;

            }

            return strRet;

        }

结果如下:

image

再改成如下:

        public override  string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                    strRet = strRet + xmlNode.InnerXml ;

            }

            return strRet;

        }

image

再改成如下:

        public override  string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                    strRet = strRet + xmlNode.OuterXml ;

            }

            return strRet;

        }

image

为了得到ROOT下面的子节点,改成如下:
        public override  string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                XmlNode xmlN = xmlNode.FirstChild;    

                strRet = strRet + xmlN .OuterXml  ;

            }

            return strRet;

        }
image 

 

能够得到节点了,下面得到节点中指定元素的属性或值。

改成

        public override  string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                XmlNode xmlN = xmlNode.FirstChild;

                XmlNode xmlNo = xmlN.FirstChild;

                strRet = strRet + xmlNo .OuterXml  ;

            }

            return strRet;

        }

得到的结果是

image

改成

        public override  string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList= xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                XmlNode xmlN = xmlNode.FirstChild;

                XmlNode xmlNo = xmlN.FirstChild;

                strRet = strRet + xmlNo .InnerXml   ;

            }

            return strRet;

        }
得到的结果是

image

改成

        public override string ToString()

        {

            string strRet = "";

            XmlNodeList xmlNodeList = xmlDoc.ChildNodes;

            foreach (XmlNode xmlNode in xmlNodeList)

            {

                XmlNode xmlN = xmlNode.FirstChild;

                strRet = strRet + xmlN.Attributes.Item (0).InnerText ;

            }

            return strRet;

        }

image

总结一下:

可以看出,Text是对标记里面的内容的提取,而Xml则是对标记和标记内容的提取,其中innerXml不包括当前节点的提取,而outerXml则将自身包括在内。

image

你可能感兴趣的:(.net)