轉載自:http://www.cr173.com/html/10715_1.htmlhtml
關於xml的有關操做,在讀的過程當中,因爲是初學者有不明白的地方就查資料,發現本身多innerXml,outerXml,innerXml的理解很不清楚,本身就在原有代碼的上進行了部分修改(這不算侵權吧)。首先創建的xml的結構是這樣子的,並命名爲U-Shop:
<Teams>
<Member team="U-Shop" Description="U-Shop團隊">
<name>靈動生活</name>
<position>planning</position>
</Member>
<Member team="U-Shop" Description="U-Shop團隊">
<name>藍藍海天</name>
<position>support</position>
</Member>
<Member team="U-Shop" Description="U-Shop團隊">
<name>神舟龍</name>
<position>lean</position>
</Member>
</Teams>
肯定路徑:
string myXmlFilePath = "E:\\U-Shop.xml";
依照此模板咱們有c#代碼進行創建,方法代碼以下:
//生成xml 結構
private static void GenerateXMLFIL(string XMLfilePath)
{
try
{
//實例化xml文檔
XmlDocument myXmlDoc = new XmlDocument();
//實例化一個根節點
XmlElement rootElement = myXmlDoc.CreateElement("Teams");
//把根節點添加到xml文檔中
myXmlDoc.AppendChild(rootElement);
//建立一個一級節點
XmlElement fistLevelElement1 = myXmlDoc.CreateElement("Member");
//設置屬性
fistLevelElement1.SetAttribute("team", "U-Shop");
fistLevelElement1.SetAttribute("Description", "U-Shop團隊");
//將一級節點添加到根節點
rootElement.AppendChild(fistLevelElement1);
//建立二級節點
XmlElement secondLevelElement11 = myXmlDoc.CreateElement("name");
//設置二級節點的串聯值
secondLevelElement11.InnerText = "靈動生活";
//把二級節點添加到一級幾點
fistLevelElement1.AppendChild(secondLevelElement11);
XmlElement threeLevelElement12 = myXmlDoc.CreateElement("position");
threeLevelElement12.InnerText = "planning";
fistLevelElement1.AppendChild(threeLevelElement12);
XmlElement secondLevelElement2 = myXmlDoc.CreateElement("Member");
secondLevelElement2.SetAttribute("team", "U-Shop");
secondLevelElement2.SetAttribute("Description", "U-Shop團隊");
//添加到根節點
rootElement.AppendChild(secondLevelElement2);
XmlElement secondLevelElement21 = myXmlDoc.CreateElement("name");
secondLevelElement21.InnerText = "藍藍海天";
secondLevelElement2.AppendChild(secondLevelElement21);
XmlElement threeLevelElement22 = myXmlDoc.CreateElement("position");
threeLevelElement22.InnerText = "support";
secondLevelElement2.AppendChild(threeLevelElement22);
XmlElement secondLevelElement3 = myXmlDoc.CreateElement("Member");
secondLevelElement3.SetAttribute("team", "U-Shop");
secondLevelElement3.SetAttribute("Description", "U-Shop團隊");
//添加到根節點
rootElement.AppendChild(secondLevelElement3);
XmlElement secondLevelElement31 = myXmlDoc.CreateElement("name");
secondLevelElement31.InnerText = "神舟龍";
secondLevelElement3.AppendChild(secondLevelElement31);
XmlElement threeLevelElement32 = myXmlDoc.CreateElement("position");
threeLevelElement32.InnerText = "lean";
secondLevelElement3.AppendChild(threeLevelElement32);
//保存,重要
myXmlDoc.Save(XMLfilePath);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
下面的方法就是獲取已經建立好的xml文件中信息,方法代碼以下:
//獲取xml信息
private static void GetXMLInformation(string XMLfilePath)
{
//實例化一個xml文檔
XmlDocument myXmlDoc = new XmlDocument();
//加載xml文檔
myXmlDoc.Load(XMLfilePath);
//得到第一個爲Computers的根節點
XmlNode rootNode = myXmlDoc.SelectSingleNode("Teams");
//獲取根節點中串聯值
string innertext = rootNode.InnerText.ToString();
//獲取根節點雖有子節點結構
string innerXmlInfo = rootNode.InnerXml.ToString();
//獲取根節點在內的整個xml的結構
string outXmlInfo = rootNode.OuterXml.ToString();
//獲取根節點的全部本身點
// }
XmlNodeList firstLevelNodeList = rootNode.ChildNodes;
//遍歷全部子節點
foreach (XmlNode node in firstLevelNodeList)
{
string inner = node.InnerXml;
string outx = node.OuterXml;
//獲取全部子節點的屬性
XmlAttributeCollection attributeCol = node.Attributes;
//遍歷本身點屬性
foreach (XmlAttribute attri in attributeCol)
{
//獲取每一個節點屬性的key,value值
string name = attri.Name;
string value = attri.Value;
Console.WriteLine("{0}={1}", name, value);
}
//判斷子節點是否還有子節點
if (node.HasChildNodes)
{//若是有子節點則執行
//獲取子節點中的第一個孩子
XmlNode secondeLevelNode1 = node.FirstChild;
//獲得第一個孩子的名稱
string name = secondeLevelNode1.Name;
string innetext = secondeLevelNode1.InnerText.ToString();
string outxml = secondeLevelNode1.OuterXml.ToString();
//得到第一個孩子的串聯值
string innerxml = secondeLevelNode1.InnerXml.ToString();
Console.WriteLine("{0}={1}", name, innerxml);
XmlNode secondLevelNode2 = node.ChildNodes[1];
name = secondLevelNode2.Name;
innerxml = secondLevelNode2.InnerXml;
Console.WriteLine("{0}={1}", name, innerxml);
}
}
}
咱們很容易得到上邊代碼中紅色字體的值,即innertext=「靈動生活planning藍藍海天support神舟龍lean:「理解:根節點如下全部節點的值,innerXmlInfo =「
<Member team="U-Shop" Description="U-Shop團隊">
<name>靈動生活</name>
<position>planning</position>
</Member>
<Member team="U-Shop" Description="U-Shop團隊">
<name>藍藍海天</name>
<position>support</position>
</Member>
<Member team="U-Shop" Description="U-Shop團隊">
<name>神舟龍</name>
<position>lean</position>
</Member>
理解:除根節點標籤後,根節點包含的xml結構」, outXmlInfo =」
<Teams>
<Member team="U-Shop" Description="U-Shop團隊">
<name>靈動生活</name>
<position>planning</position>
</Member>
<Member team="U-Shop" Description="U-Shop團隊">
<name>藍藍海天</name>
<position>support</position>
</Member>
<Member team="U-Shop" Description="U-Shop團隊">
<name>神舟龍</name>
<position>lean</position>
</Member>
</Teams>
理解:包含根節點標籤在內的xml結構「
innertext :能夠把這個單詞分開進行理解,分開就是inner和text,inner就是裏面的意思,這裏咱們能夠理解爲不包含本節點,即innertext所在節點的子節點,text就是文本的意思,因此innertext不會出現標籤,總體理解就是innertext所在節點所包含的子節點的值;
innerxml:一樣咱們也能夠把這個單詞拆分進行理解,分開就是inner和xml,inner就是裏面的意思,這裏咱們能夠理解爲不包含本節點,即innerxml所在節點的子節點,xml 這裏能夠認爲是咱們所寫的標籤,固然也包括它的屬性值,因此這裏理解就是innerxml所在節點所包含的子節點的標籤結構;
outerxml:一樣咱們也能夠把這個單詞拆分進行理解,分開就是outer和xml,out就是外面的意思,這裏咱們能夠理解爲包含本節點,即outerxml所在節點的子節點,xml 這裏能夠認爲是咱們所寫的標籤,固然也包括它的屬性值,因此這裏理解就是outerxml所在節點以及所包含的子節點的標籤結構、屬性、值(包含所在節點)。node
C#中看到的某個xm文件:c#
<root>
<version>2</version>
<name>baidu_xinwen_1.1.0</name>
<url>http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk</url>
</root> 字體