C#操作XML文檔(XmlDocument、XmlNode、XmlAttribute、SelectSingleNode、SelectNodes、XmlNodeList)
XML文檔是一種通用的文檔,這種文檔既可以用.config作為后綴也可以用.xml作為后綴。XML文檔主要由元素節(jié)點和節(jié)點的屬性共同構成的。它有且僅有一個根節(jié)點,其他的節(jié)點全部都是根節(jié)點的子節(jié)點或者子子節(jié)點;每一個節(jié)點有開始就一定會有結束,不可能出現(xiàn)有開始無結束的節(jié)點,節(jié)點主要有兩種類型:有InnerText的<city>……</city>和沒有InnerText的<city……/>。在節(jié)點中含有屬性,一個節(jié)點可以含有多個屬性,每個屬性是由名字和值共同構成的。
在XML文檔中,節(jié)點、屬性都是區(qū)分大小寫的。對于某個節(jié)點的屬性,Name是不能重復的,即使在定義屬性的時候,定義了兩個name完全相同的屬性,添加到同一個節(jié)點上面,后面的屬性會把前面的屬性覆蓋,不會報語法錯誤;對于某個節(jié)點下面的子節(jié)點,則可以添加多個完全相同的子節(jié)點。
對XML文檔的操作的前提是:XML文檔已經存在,并且根節(jié)點已經存在。
一、添加節(jié)點和屬性
1、定義一個XML的操作對象:
XmlDocument doc = new XmlDocument();
2、加載一個XML文件:
doc.Load(@"D:\App.config");
指定的文件一定要存在,否則會報錯的。
3、獲取根節(jié)點:
XmlNode root = doc.DocumentElement;
4、定義一個屬性:
XmlAttribute ra = doc.CreateAttribute("Name");
5、給屬性的值賦值:
ra.Value = "zwj2";
6、將屬性添加到節(jié)點上面:
root.Attributes.Append(ra);
7、再定義一個節(jié)點為根節(jié)點的子節(jié)點:
XmlNode root1 = doc.CreateElement("table");
8、給節(jié)點賦文本值:
root1.InnerText = "sdf1";
9、給節(jié)點定義并添加屬性
10、將該節(jié)點添加到父節(jié)點上去:
root.AppendChild(root1);
11、保存XML文檔:
doc.Save(@"D:\App.config");
注意:可以對一個節(jié)點添加多個屬性,那么各個屬性會依次往后排;可以給根節(jié)點添加多個子節(jié)點,也可以對子節(jié)點再添加多個子節(jié)點。
二、查詢和修改節(jié)點和屬性
1、元素結點有Name屬性,就是<>里面的串,也有InnerText屬性(相當于文本結點),就是<></>之間的串:root.Name、root.InnerText。這些屬性都是可以讀寫的。
------------------------------XmlNode
2、屬性結點有Name,也有Value:providerName="System.Data.SqlClient",前面為Name,后面為Value這些屬性既可讀也可寫。
------------------------------XmlAttribute
3、每一個結點有子結點的集合,也有屬性的集合:root.ChildNodes、root.Attributes;集合都有count屬性。
4、集合都滿足索引:
對于屬性集合,屬性的name是不能重復的,所以索引可以是name字符串索引,那么name字符串要存在,否則返回的是一個null屬性對象,不會報錯;也可以是整數(shù)索引,那么此時的整數(shù)不能越界,否則是會報錯的;:root.Attributes["name"]、root.Attributes[0],返回XmlAttribute。
對于子節(jié)點的集合,因為子節(jié)點可以完全相同,那么子節(jié)點的name肯定也可以相同,所以此時的索引只能是整數(shù)的,而不能是子節(jié)點name字符串,整數(shù)索引也不能越界,否則會報錯: root.ChildNodes[10],返回XmlNode。
三、幾個重要的函數(shù)
1、XmlNode XmlDocument.SelectSingleNode(@"configuration/twoNode/dayStart")
這個函數(shù)是用一個聲明好的并且已經成功加載了某個配置文件的XmlDocument對象去調用SelectSingleNode函數(shù);該函數(shù)的參數(shù)是配置文件中的從根節(jié)點名字開始一直往下最終到想要的節(jié)點的名字,整個名字路徑都不能出錯,注意是左斜杠;函數(shù)的返回值是第一次找到的XmlNode節(jié)點的對象,如果找不到就會返回null。
操作如下xml:
<?xmlversion="1.0"?> <configuration> <twoNode> </twoNode> <twoNode> <dayStart>1</dayStart> <dayStart>2</dayStart> <dayStart>3</dayStart> </twoNode> </configuration>
如果執(zhí)行該函數(shù),那么將會找到節(jié)點:<dayStart>1</dayStart>
2、XmlNodeList XmlDocument.SelectNodes (@"configuration/twoNode/dayStart")
這個函數(shù)是用一個聲明好的并且已經成功加載了某個配置文件的XmlDocument對象去調用SelectNodes函數(shù);該函數(shù)的參數(shù)是配置文件中的從根節(jié)點名字開始一直往下最終到想要的節(jié)點的名字,整個名字路徑都不能出錯,注意是左斜杠;因為節(jié)點的名字是可能重復的,所以函數(shù)的返回值是找到的所有XmlNode節(jié)點對象的集合XmlNodeList,如果找不到就會返回null。
XmlNodeList是集合,那么就有count屬性,可以直接對這個集合用[int index]來索引具體的對象,也可以用集合的Item(int index)函數(shù)來索引具體的對象,但是索引不能越界,否則會出錯,返回的是XmlNode。
操作如下xml:
<?xmlversion="1.0"?> <configuration> <twoNode> <dayStart>-1</dayStart> <dayStart>-2</dayStart> <dayStart>-3</dayStart> </twoNode> <twoNode> <dayStart>1</dayStart> <dayStart>2</dayStart> <dayStart>3</dayStart> </twoNode> </configuration>
如果執(zhí)行該函數(shù),那么將會找到節(jié)點集合:
<dayStart>-1</dayStart>
<dayStart>-2</dayStart>
<dayStart>-3</dayStart>
<dayStart>1</dayStart>
<dayStart>2</dayStart>
<dayStart>3</dayStart>
操作如下xml:
<?xmlversion="1.0"?> <configuration> <twoNode> </twoNode> <twoNode> <dayStart>1</dayStart> <dayStart>2</dayStart> <dayStart>3</dayStart> </twoNode> </configuration>
如果執(zhí)行該函數(shù),那么將會找到節(jié)點集合:
<dayStart>1</dayStart>
<dayStart>2</dayStart>
<dayStart>3</dayStart>
下面就開始進行實際操作吧!
一.添加一個xml文件,名為book.xml ,內容如下:
<?xml version="1.0" encoding="utf-8"?><bookstore> <book Type="必修課" ISBN="7-111-19149-2"> <title>數(shù)據(jù)結構</title> <author>嚴蔚敏</author> <price>30.00</price> </book> <book Type="必修課" ISBN="7-111-19149-3"> <title>路由型與交換型互聯(lián)網(wǎng)基礎</title> <author>程慶梅</author> <price>27.00</price> </book> <book Type="必修課" ISBN="7-111-19149-4"> <title>計算機硬件技術基礎</title> <author>李繼燦</author> <price>25.00</price> </book> <book Type="必修課" ISBN="7-111-19149-5"> <title>軟件質量保證與管理</title> <author>朱少民</author> <price>39.00</price> </book> <book Type="必修課" ISBN="7-111-19149-6"> <title>算法設計與分析</title> <author>王紅梅</author> <price>23.00</price> </book> <book Type="選修課" ISBN="7-111-19149-1"> <title>計算機操作系統(tǒng)</title> <author>你猜</author> <price>28</price> </book></bookstore>
二.添加一個web頁面,名為 XML_Operation.aspx,頁面內容如下:
一共4個按鈕,分別是button1、button2、button3、button4,然后是一個GridView1用來顯示數(shù)據(jù)
三.添加一個BookModel.cs類用于讀取數(shù)據(jù),內容如下:
public class BookModel { //構造函數(shù) public BookModel(){} /// <summary> /// 所對應的課程類型 /// </summary> public string BookType { get; set; } /// <summary> /// 書所對應的ISBN號 /// </summary> public string BookISBN { get; set; } /// <summary> /// 書名 /// </summary> public string BookName { get; set; } /// <summary> /// 作者 /// </summary> public string BookAuthor { get; set; } /// <summary> /// 價格 /// </summary> public string BookPrice { get; set; } }
四.后臺代碼如下:
1.添加命名空間 using System.Xml;
2.添加公共方法,用于操作當前XML
/// <summary> /// XML操作公共方法 /// </summary> /// <param name="oname">操作類型,create代表創(chuàng)建、delete代表刪除、update代表修改、select代表查詢</param> private void OperationXML(string oname) { XmlDocument xmldoc = new XmlDocument();//xml操作文檔類 //xmldoc.Load(@"D:\Practice\Test20150703\AboutXML\AboutXML\book.xml"); XmlReaderSettings set = new XmlReaderSettings(); set.IgnoreComments = true;//忽略文檔注釋 XmlReader reader = XmlReader.Create(@"D:\Practice\Test20150703\AboutXML\AboutXML\book.xml", set); xmldoc.Load(reader); reader.Close(); XmlNode node = xmldoc.SelectSingleNode("bookstore"); XmlNodeList childs = node.ChildNodes; switch (oname) { case "create"://增加 #region XmlElement xmlnew = xmldoc.CreateElement("book"); XmlAttribute xmlattri = xmldoc.CreateAttribute("Type");//添加類型 xmlattri.Value = "新類型"; xmlnew.SetAttributeNode(xmlattri); XmlAttribute isbnatti = xmldoc.CreateAttribute("ISBN");//添加編號 xmlnew.SetAttributeNode(isbnatti); isbnatti.Value = DateTime.Now.ToString("yyyymmddHHmmssfff");//注意,最后的f代表毫秒,可以取毫秒的前幾位數(shù),比如毫秒123可以用ff取到12 node.AppendChild(xmlnew);//將新節(jié)點添加到根節(jié)點里面 XmlElement titlenew = xmldoc.CreateElement("title"); titlenew.InnerText = "newtitle"; xmlnew.AppendChild(titlenew);//在book字節(jié)點下面繼續(xù)添加子節(jié)點 XmlElement authornew = xmldoc.CreateElement("author"); authornew.InnerText = "newauthor"; xmlnew.AppendChild(authornew);//在book字節(jié)點下面繼續(xù)添加子節(jié)點 XmlElement pricenew = xmldoc.CreateElement("price"); pricenew.InnerText = "100k"; xmlnew.AppendChild(pricenew);//在book字節(jié)點下面繼續(xù)添加子節(jié)點 SaveXML(xmldoc,@"D:\Practice\Test20150703\AboutXML\AboutXML\book.xml");//保存并刷新 #endregion break; case "delete"://刪除 #region //想要刪除某一個結點,直接找到其父結點,然后調用RemoveChild方法即可,現(xiàn)在關鍵的問題是如何找到這個結點,上面的SelectSingleNode可以傳入一個Xpath表,我們通過書的ISBN號來找到這本書所在的結點 string xmlPath = string.Format("/bookstore/book[@Type=\"{0}\" and @ISBN=\"{1}\"]", GridView1.Rows[GridView1.Rows.Count - 1].Cells[0].Text, GridView1.Rows[GridView1.Rows.Count - 1].Cells[1].Text); XmlNode xmldelete = xmldoc.DocumentElement.SelectSingleNode(xmlPath);//"/bookstore/book[@ISBN=\"{0}\"]"是一個Xpath表達式,找到類型為所選那一行類型的那本書 if (xmldelete != null) { xmldelete.ParentNode.RemoveChild(xmldelete); } SaveXML(xmldoc,@"D:\Practice\Test20150703\AboutXML\AboutXML\book.xml");//保存并刷新 #endregion break; case "update"://修改 #region //修改某條數(shù)據(jù)的話,首先也是用Xpath表達式找到所需要修改的那一個結點,然后如果是元素的話,就直接對這個元素賦值,如果是屬性的話,就用SetAttribute方法設置即可 //方法1 string xmlpath = string.Format("/bookstore/book[@Type=\"{0}\"]", GridView1.Rows[GridView1.Rows.Count - 1].Cells[0].Text); XmlNode updatenode = xmldoc.DocumentElement.SelectSingleNode(xmlpath); updatenode.Attributes.GetNamedItem("Type").InnerText = "testtype"; if (updatenode.ChildNodes != null & updatenode.ChildNodes.Count > 0) { updatenode.ChildNodes.Item(0).InnerText = "testtitle"; } //或方法2 //XmlElement updateattri = (XmlElement)xmldoc.DocumentElement.SelectSingleNode(xmlpath); //updateattri.SetAttribute("Type", "修改類型"); //updateattri.GetElementsByTagName("title").Item(0).InnerText = "titleupdate";//注意這里只能用InnerText進行修改而不能用value進行修改 //updateattri.GetElementsByTagName("author").Item(0).InnerText = "authorupdate"; SaveXML(xmldoc,@"D:\Practice\Test20150703\AboutXML\AboutXML\book.xml");//保存并刷新 #endregion break; default: //查詢 #region List<BookModel> booklist = new List<BookModel>();//書本集合 foreach (XmlNode child in childs) { BookModel book = new BookModel(); XmlElement xe = (XmlElement)child;//將節(jié)點轉換為元素,便于得到節(jié)點的屬性值 book.BookType = xe.GetAttribute("Type"); book.BookISBN = xe.GetAttribute("ISBN"); XmlNodeList schild = child.ChildNodes; if (schild != null && schild.Count > 0) { book.BookName = schild.Item(0).InnerText; book.BookAuthor = schild.Item(1).InnerText; book.BookPrice = schild.Item(2).InnerText; } else { book.BookName = ""; book.BookAuthor = ""; book.BookPrice = ""; } booklist.Add(book); } GridView1.DataSource = booklist; GridView1.DataBind(); #endregion break; } } //保存xml private void SaveXML(XmlDocument xmldoc, string savePath) { xmldoc.Save(savePath);//保存 OperationXML("select");//刷新 }
另外,如果想獲取XML相對路徑,可以這樣做,首先引用命名空間using System.IO; 然后直接 stirng xmlPath = Server.MapPath("Gun.xml") 即可。
3.各個調用事件如下:
//查詢節(jié)點 protected void Button1_Click(object sender, EventArgs e) { OperationXML("select"); } //新增節(jié)點 protected void Button2_Click(object sender, EventArgs e) { OperationXML("create"); } //修改節(jié)點 protected void Button3_Click(object sender, EventArgs e) { OperationXML("update"); } //刪除節(jié)點 protected void Button4_Click(object sender, EventArgs e) { OperationXML("delete"); }
C#遍歷XmlDocument對象所有節(jié)點名稱、類型、屬性(Attribute)
代碼
static void Main(string[] args) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load("../../UpdateActivity2.xml");//doc.Load(文件):從文件加載 doc。doc.LoadXml(字符串)從字符串加載 UpdateActivity2(doc); }/// <summary> /// 測試方法 /// </summary> /// <param name="doc">XmlDocument對象</param> public static void UpdateActivity2(XmlDocument doc) { string xx = doc.InnerXml; //Activity2 string activity2ID = ""; string docid = ""; string docTypeid = ""; #region MyRegion //獲取delete的節(jié)點 //doc.SelectNodes("//Relationships/Item[@action='delete' and @type='Activity2 Deliverable']/related_id[@type='Deliverable']/Item[@type='Document' or @type='CAD']") //獲取add的節(jié)點 //doc.SelectNodes("//Relationships/Item[@action='add' and @type='Activity2 Deliverable']") #endregion XmlNodeList Activity2Nodes = doc.SelectNodes("//Item[@type='Activity2']"); ////遍歷Activity2Nodes中的所有節(jié)點 //foreach (XmlNode node in Activity2Nodes) //{ // Console.WriteLine("=========="+node.Name+"==========="); // foreach (XmlAttribute atr in node.Attributes) // { // Console.WriteLine(atr.Name+ "\t:" +atr.Value); // } // XmlNodeList childNodes = doc.ChildNodes; // PrintChildNodes(childNodes); // Console.Read(); //} PrintChildNodes(Activity2Nodes); Console.WriteLine("=============================deleteNodes======================================="); foreach (XmlNode activity2 in Activity2Nodes) { activity2ID = activity2.Attributes["id"].Value; //Action = delete XmlNodeList deleteNodes = doc.SelectNodes("//Relationships/Item[@action='delete' and @type='Activity2 Deliverable']/related_id[@type='Deliverable']/Item[@type='Document' or @type='CAD']"); PrintChildNodes(deleteNodes); } } /// <summary> /// 遍歷所有節(jié)點的type、name、Attributes /// </summary> /// <param name="childnodelist"></param> static void PrintChildNodes(XmlNodeList childnodelist) { try { foreach (XmlNode node in childnodelist) { //(node.NodeType 是Text時,即是最內層 即innertext值,node.Attributes為null。 if (node.NodeType == XmlNodeType.Text) { Console.WriteLine("NodeType:" + node.NodeType + "\t" + node.Name + "\t:" + node.Value); continue; } Console.WriteLine("==========node.Name:" + node.Name + "==========="); foreach (XmlAttribute atr in node.Attributes) { Console.WriteLine("NodeType:"+atr.NodeType+"\t"+ atr.Name + "\t:" + atr.Value); } if (node.ChildNodes.Count > 0) { PrintChildNodes(node.ChildNodes); } } } catch (Exception ex ) { Console.WriteLine(ex.Message); } }
XML檔
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <ApplyItem> <Item type="Method" action="UpdateActivity2" impersonate="0"> <Item type="Activity2" typeId="E236DB697E294C46B630C99A0D20C2B1" id="6BDF5F2096F14405BAD77A7182DEF34B" action="UpdateActivity" isDirty="1"> <config_id keyed_name="治具圖" type="Activity2">6BDF5F2096F14405BAD77A7182DEF34B</config_id> <created_by_id keyed_name="王舊" type="User">1DCA0BEA51AA46D8982A872C13B0C2C2</created_by_id> <created_on>2016-10-14T12:07:17</created_on> <current_state keyed_name="Active" type="Life Cycle State" name="Active">348A09DDD3E34CAFA837984AD1426D9C</current_state> <date_activated>2017-02-28T19:18:21</date_activated> <date_due_sched>2017-04-18T00:00:00</date_due_sched> <date_ef>2017-03-03T00:00:00</date_ef> <date_es>2017-02-20T00:00:00</date_es> <date_lf>2017-09-18T00:00:00</date_lf> <date_ls>2017-09-05T00:00:00</date_ls> <date_start_sched>2017-04-05T00:00:00</date_start_sched> <deliv_required>1</deliv_required> <earned_value>0</earned_value> <expected_duration>10</expected_duration> <generation>1</generation> <id keyed_name="治具圖" type="Activity2">6BDF5F2096F14405BAD77A7182DEF34B</id> <is_critical>0</is_critical> <is_current>1</is_current> <is_milestone>0</is_milestone> <is_released>0</is_released> <is_required>1</is_required> <keyed_name>治具圖</keyed_name> <lead_role>Electronics Engineer</lead_role> <lx_allreview/> <lx_ph>2</lx_ph> <lx_requirepart>0</lx_requirepart> <lx_review>1</lx_review> <lx_review_pers/> <major_rev>A</major_rev> <managed_by_id keyed_name="王 舊" type="Identity">E96B522DF5DF4E19BF27EF915EE4E6AA</managed_by_id> <modified_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</modified_by_id> <modified_on>2017-09-26T19:42:22</modified_on> <new_version>1</new_version> <not_lockable>0</not_lockable> <owned_by_id keyed_name="梁新" type="Identity">FB0D355A16B04A848417EE270BFE0B02</owned_by_id> <percent_compl>0</percent_compl> <planned_value>920</planned_value> <prev_item>A52478EF81F047D7AFF9BAED2B6CE3F1</prev_item> <proj_num>23343</proj_num> <signoff_required>0</signoff_required> <spi>0.0000</spi> <state>Active</state> <status>#FF0000</status> <team_id keyed_name="5CD06953B4354239AA5E00ADEDE7B078" type="Team">D4ECE5BD68B54D969B87C17C068F3E09</team_id> <name>治具圖</name> <fed_css> .percent_compl{background-color:#FFCCCC} .date_start_act{background-color:#FFCCCC} </fed_css> <Relationships> <Item id="45B304A7BF0F4077B44351E1BD87DCBA" type="Activity2 Deliverable" typeId="0CCA05E05A104F2E88CF123EF4F5171E" action="delete"> <created_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</created_by_id> <created_on>2017-09-26T19:38:16</created_on> <css is_null="1"/> <current_state is_null="1"/> <id keyed_name="45B304A7BF0F4077B44351E1BD87DCBA" type="Activity2 Deliverable">45B304A7BF0F4077B44351E1BD87DCBA</id> <keyed_name>45B304A7BF0F4077B44351E1BD87DCBA</keyed_name> <locked_by_id is_null="1"/> <lx_activity2manager keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</lx_activity2manager> <lx_activity2name>治具圖</lx_activity2name> <lx_classification>品質文件/不良看板</lx_classification> <lx_projectnum>23343</lx_projectnum> <major_rev>A</major_rev> <modified_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</modified_by_id> <modified_on>2017-09-26T19:38:16</modified_on> <related_id keyed_name="DOC16-0000029605" type="Deliverable"> <Item type="Document" typeId="B88C14B99EF449828C5D926E39EE8B89" id="49A80B2AE016488FB9095B7E6FDA5562"> <classification>品質文件/不良看板</classification> <config_id keyed_name="DOC16-0000029605" type="Document">49A80B2AE016488FB9095B7E6FDA5562</config_id> <created_by_id keyed_name="王山" type="User">97CDC886228E4217B70EB32C5E7A051B</created_by_id> <created_on>2016-12-08T14:39:50</created_on> <current_state keyed_name="Released" type="Life Cycle State" name="Released">A089866A0FE34B6799296DE32FD23DB0</current_state> <description>外部線TYPE-C終檢不良看板</description> <effective_date>2016-12-09T09:35:04</effective_date> <generation>1</generation> <has_change_pending>0</has_change_pending> <has_files>1</has_files> <id keyed_name="DOC16-0000029605" type="Document">49A80B2AE016488FB9095B7E6FDA5562</id> <is_batchloader>0</is_batchloader> <is_current>1</is_current> <is_released>1</is_released> <is_template>0</is_template> <keyed_name>DOC16-0000029605</keyed_name> <lx_commonarea>外部線</lx_commonarea> <lx_customer/> <lx_doc_cad_partstype>10</lx_doc_cad_partstype> <lx_parts/> <lx_producttype>PTAC_BZLANTO</lx_producttype> <lx_projectname/> <lx_projectnamer>test</lx_projectnamer> <lx_projectnum>23343</lx_projectnum> <lx_ssss>0</lx_ssss> <lx_usefactory>BZLANTO</lx_usefactory> <major_rev>X</major_rev> <modified_by_id keyed_name="Admin" type="User">30B991F927274FA3829655F50C99472E</modified_by_id> <modified_on>2016-12-09T09:35:04</modified_on> <name>外部線TYPE-C終檢不良看板</name> <new_version>0</new_version> <not_lockable>1</not_lockable> <owned_by_id keyed_name="品質工程師" type="Identity">7EB1EB96188A438588DDAAD14A2BE716</owned_by_id> <release_date>2016-12-09T09:35:04</release_date> <sop_gen>1</sop_gen> <sop_ver>A</sop_ver> <state>Released</state> <item_number>DOC16-0000029605</item_number> <itemtype>B88C14B99EF449828C5D926E39EE8B89</itemtype> </Item> </related_id> <source_id keyed_name="治具圖" type="Activity2">6BDF5F2096F14405BAD77A7182DEF34B</source_id> </Item> <Item id="7387AC910646405B8CDFA2B8E031B822" type="Activity2 Deliverable" typeId="0CCA05E05A104F2E88CF123EF4F5171E" action="delete"> <created_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</created_by_id> <created_on>2017-09-26T19:39:19</created_on> <css is_null="1"/> <current_state is_null="1"/> <id keyed_name="7387AC910646405B8CDFA2B8E031B822" type="Activity2 Deliverable">7387AC910646405B8CDFA2B8E031B822</id> <keyed_name>7387AC910646405B8CDFA2B8E031B822</keyed_name> <locked_by_id is_null="1"/> <lx_activity2manager keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</lx_activity2manager> <lx_activity2name>治具圖</lx_activity2name> <lx_classification>工程文件/標準排配</lx_classification> <lx_projectnum>23343</lx_projectnum> <major_rev>A</major_rev> <modified_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</modified_by_id> <modified_on>2017-09-26T19:39:19</modified_on> <related_id keyed_name="DOC16-0000029606" type="Deliverable"> <Item type="Document" typeId="B88C14B99EF449828C5D926E39EE8B89" id="B241B7570448435899F402D48D01599C"> <classification>工程文件/標準排配</classification> <config_id keyed_name="DOC16-0000029606" type="Document">B241B7570448435899F402D48D01599C</config_id> <created_by_id keyed_name="黃平" type="User">63E3C06CEC7E429DA6D06ECB87D5B96E</created_by_id> <created_on>2016-12-08T15:08:59</created_on> <current_state keyed_name="Released" type="Life Cycle State" name="Released">7726A5CBBACA4E398FA26DA5682AAB4A</current_state> <effective_date>2016-12-10T13:52:07</effective_date> <generation>1</generation> <has_change_pending>0</has_change_pending> <has_files>1</has_files> <id keyed_name="DOC16-0000029606" type="Document">B241B7570448435899F402D48D01599C</id> <is_batchloader>0</is_batchloader> <is_current>1</is_current> <is_released>1</is_released> <is_template>0</is_template> <keyed_name>DOC16-0000029606</keyed_name> <lx_customer/> <lx_parts>LGJSA002-DT-R</lx_parts> <lx_producttype>PTAA_LX53</lx_producttype> <lx_projectname/> <lx_projectnamer>test</lx_projectnamer> <lx_projectnum>23343</lx_projectnum> <lx_ssss>0</lx_ssss> <lx_usefactory>LX53</lx_usefactory> <major_rev>X</major_rev> <modified_by_id keyed_name="Admin" type="User">30B991F927274FA3829655F50C99472E</modified_by_id> <modified_on>2016-12-10T13:52:07</modified_on> <name>LGJSA002-DT-R排A</name> <new_version>0</new_version> <not_lockable>1</not_lockable> <owned_by_id keyed_name="線裝IE工程師" type="Identity">272C18498A9B4902BA7831A8293EEE2D</owned_by_id> <release_date>2016-12-10T13:52:07</release_date> <sop_gen>1</sop_gen> <sop_ver>A</sop_ver> <state>Released</state> <item_number>DOC16-0000029606</item_number> <itemtype>B88C14B99EF449828C5D926E39EE8B89</itemtype> </Item> </related_id> <source_id keyed_name="治具圖" type="Activity2">6BDF5F2096F14405BAD77A7182DEF34B</source_id> </Item> <Item id="4088E5C4E4594477B74D34C2B36D88FB" type="Activity2 Deliverable" typeId="0CCA05E05A104F2E88CF123EF4F5171E"> <created_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</created_by_id> <created_on>2017-09-26T19:42:22</created_on> <css is_null="1"/> <current_state is_null="1"/> <id keyed_name="4088E5C4E4594477B74D34C2B36D88FB" type="Activity2 Deliverable">4088E5C4E4594477B74D34C2B36D88FB</id> <keyed_name>4088E5C4E4594477B74D34C2B36D88FB</keyed_name> <locked_by_id is_null="1"/> <lx_activity2manager keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</lx_activity2manager> <lx_activity2name>治具圖</lx_activity2name> <lx_classification>工程文件/標準排配</lx_classification> <lx_projectnum>23343</lx_projectnum> <major_rev>A</major_rev> <modified_by_id keyed_name="王 舊" type="User">4C66AA1CBF5145F8B37F37244E84ABFE</modified_by_id> <modified_on>2017-09-26T19:42:22</modified_on> <related_id keyed_name="DOC16-0000029607" type="Deliverable"> <Item type="Document" typeId="B88C14B99EF449828C5D926E39EE8B89" id="751623C841794ED3AA6E30BA8731EF97"> <classification>工程文件/標準排配</classification> <config_id keyed_name="DOC16-0000029607" type="Document">751623C841794ED3AA6E30BA8731EF97</config_id> <created_by_id keyed_name="黃平" type="User">63E3C06CEC7E429DA6D06ECB87D5B96E</created_by_id> <created_on>2016-12-08T15:10:52</created_on> <current_state keyed_name="Released" type="Life Cycle State" name="Released">7726A5CBBACA4E398FA26DA5682AAB4A</current_state> <effective_date>2016-12-10T13:52:07</effective_date> <generation>1</generation> <has_change_pending>0</has_change_pending> <has_files>1</has_files> <id keyed_name="DOC16-0000029607" type="Document">751623C841794ED3AA6E30BA8731EF97</id> <is_batchloader>0</is_batchloader> <is_current>1</is_current> <is_released>1</is_released> <is_template>0</is_template> <keyed_name>DOC16-0000029607</keyed_name> <lx_customer/> <lx_parts>LGJSA001-DT-R</lx_parts> <lx_producttype>PTAA_LX53</lx_producttype> <lx_projectname/> <lx_projectnamer>test,test</lx_projectnamer> <lx_projectnum>26383,23343</lx_projectnum> <lx_ssss>0</lx_ssss> <lx_usearea>A83</lx_usearea> <lx_usefactory>LX53</lx_usefactory> <major_rev>X</major_rev> <modified_by_id keyed_name="Admin" type="User">30B991F927274FA3829655F50C99472E</modified_by_id> <modified_on>2016-12-10T13:52:07</modified_on> <name>LGJSA001-DT-R排A</name> <new_version>0</new_version> <not_lockable>1</not_lockable> <owned_by_id keyed_name="線裝IE工程師" type="Identity">272C18498A9B4902BA7831A8293EEE2D</owned_by_id> <release_date>2016-12-10T13:52:07</release_date> <sop_gen>1</sop_gen> <sop_ver>A</sop_ver> <state>Released</state> <item_number>DOC16-0000029607</item_number> <itemtype>B88C14B99EF449828C5D926E39EE8B89</itemtype> </Item> </related_id> <source_id keyed_name="治具圖" type="Activity2">6BDF5F2096F14405BAD77A7182DEF34B</source_id> </Item> <Item type="Activity2 Deliverable" id="34A6671FC78F4C0EBA815F1AD5C4C702" action="add" loaded="1" levels="0" isTemp="1" typeId="0CCA05E05A104F2E88CF123EF4F5171E" LastModifiedOn="1506509992553"> <related_id> <Item type="Deliverable" typeId="86920FEE161244F6B4B507130B18CADE" id="A93C9EE8656C4BDC8F0B22337B07FC1B" levels="0"> <classification>客戶圖</classification> <config_id keyed_name="CAD17-0000011829" type="Deliverable">A93C9EE8656C4BDC8F0B22337B07FC1B</config_id> <created_by_id keyed_name="梁新" type="User">70EC6C95D08F409E9E2378B02115E572</created_by_id> <created_on>2017-03-08T14:07:45</created_on> <current_state keyed_name="In Review" type="Life Cycle State" name="In Review">870C0DCA808F4D0F9718F5F37388235C</current_state> <generation>1</generation> <id keyed_name="CAD17-0000011829" type="Deliverable">A93C9EE8656C4BDC8F0B22337B07FC1B</id> <is_current>1</is_current> <is_released>0</is_released> <itemtype>CCF205347C814DD1AF056875E0A880AC</itemtype> <keyed_name>CAD17-0000011829</keyed_name> <major_rev>X</major_rev> <modified_by_id keyed_name="梁新" type="User">70EC6C95D08F409E9E2378B02115E572</modified_by_id> <modified_on>2017-08-07T10:18:29</modified_on> <new_version>0</new_version> <not_lockable>1</not_lockable> <owned_by_id keyed_name="研發(fā)工程師" type="Identity">5BCB3F52640B434EB27747A79D25DB4B</owned_by_id> <state>In Review</state> </Item> </related_id> <source_id keyed_name="治具圖">6BDF5F2096F14405BAD77A7182DEF34B</source_id> </Item> <Item type="Activity2 Deliverable" id="06562E228E0B48E19C5D32CB739517DD" action="add" loaded="1" levels="0" isTemp="1" typeId="0CCA05E05A104F2E88CF123EF4F5171E" LastModifiedOn="1506509992699"> <related_id> <Item type="Deliverable" typeId="86920FEE161244F6B4B507130B18CADE" id="AE6002C6F5F9403F89FD1521E52AE73F" levels="0"> <classification>客戶圖</classification> <config_id keyed_name="CAD17-0000011828" type="Deliverable">BD95AA887A9C4241810FA28875491DCB</config_id> <created_by_id keyed_name="梁新" type="User">70EC6C95D08F409E9E2378B02115E572</created_by_id> <created_on>2017-03-08T14:07:39</created_on> <current_state keyed_name="In Review" type="Life Cycle State" name="In Review">870C0DCA808F4D0F9718F5F37388235C</current_state> <generation>3</generation> <id keyed_name="CAD17-0000011828" type="Deliverable">AE6002C6F5F9403F89FD1521E52AE73F</id> <is_current>1</is_current> <is_released>0</is_released> <itemtype>CCF205347C814DD1AF056875E0A880AC</itemtype> <keyed_name>CAD17-0000011828</keyed_name> <major_rev>X</major_rev> <modified_by_id keyed_name="梁新" type="User">70EC6C95D08F409E9E2378B02115E572</modified_by_id> <modified_on>2017-08-07T10:18:29</modified_on> <new_version>0</new_version> <not_lockable>1</not_lockable> <owned_by_id keyed_name="研發(fā)工程師" type="Identity">5BCB3F52640B434EB27747A79D25DB4B</owned_by_id> <state>In Review</state> </Item> </related_id> <source_id keyed_name="治具圖">6BDF5F2096F14405BAD77A7182DEF34B</source_id> </Item> </Relationships> <CurrentUserId>4C66AA1CBF5145F8B37F37244E84ABFE</CurrentUserId> </Item> </Item> </ApplyItem> </SOAP-ENV:Body></SOAP-ENV:Envelope>
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇