• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

XML trong .NET

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Sáu 07/08/2009 1:01 pm

Mã: Chọn hết

  1.  
  2. Dim SelectnodeIF As XmlNode
  3. Dim nodePath As String
  4.  
  5. Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
  6.         With TreeView1.SelectedNode
  7.             If .Level = 0 Then
  8.                 nodePath = "ThuVien"
  9.                 SelectnodeIF = doc.SelectSingleNode("DT_ThuVien/ThuVien[@Ten_Thuvien = '" & TreeView1.SelectedNode.Text.Trim & "']")
  10.             ElseIf .Level = 1 Then
  11.                 nodePath = "ThuVien/Sach"
  12.                 SelectnodeIF = doc.SelectSingleNode("DT_ThuVien/ThuVien/Sach[@Ten_Sach = '" & TreeView1.SelectedNode.Text.Trim & "']")
  13.             ElseIf .Level = 2 Then
  14.                 nodePath = "ThuVien/Sach/NoiDung"
  15.                 SelectnodeIF = doc.SelectSingleNode("DT_ThuVien/ThuVien/Sach/NoiDung[@Ten_ChiMuc = '" & TreeView1.SelectedNode.Text.Trim & "']")
  16.             End If
  17.         End With
  18.     End Sub
  19.  
  20.     Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
  21.         If SelectnodeIF IsNot Nothing Then
  22.             doc.DocumentElement.RemoveChild(SelectnodeIF)
  23.         End If
  24.         'lưu lại tài liệu
  25.         doc.Save(Application.StartupPath + "\DT_ThuVien.xml")
  26.         'Cập nhật lại số vị trí của nút
  27.         loadtotreeview()
  28.     End Sub
  29.  


thanks anhtuyenbk rat nhieu nhưng mình vẫn chưa làm đựoc, đây là cái mình đang tập làm, và file XML. mong bạn giúp đở , cảm ơn bạn nhiều lắm


thân!
Sửa lần cuối bởi bigboy83 vào ngày T.Sáu 07/08/2009 6:16 pm với 1 lần sửa.



Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: XML trong .NET

Gửi bàigửi bởi anhtuyenbk » T.Sáu 07/08/2009 1:40 pm

Tóm lại cái bạn muốn làm là gì? Xóa node con được chọn trong treeview tương ứng với node đó trong file xml.
Bạn đọc kỹ lại hướng dẫn của mình, mình kêu bạn gán cái path của các node con vào thuộc tính Name của đối tượng TreeNode trên treeview chứ ko phải là một biến riêng thế kia.
Bạn theo ý tưởng dưới đây sửa lại cho phù hợp vói ý tưởng của bạn.

Mã: Chọn hết

  1. 'cong 1 node vao treeview và gán path cho nó
  2.         Dim node As New TreeNode
  3.         node.Name = "thuvien/sach"  ' gán path vào đây
  4.         node.Text = "khoa hoc"
  5.         TreeView1.Nodes.Add(node)
  6.         'lay ra node duoc chon
  7.         Dim selectedNode As TreeNode = TreeView1.SelectedNode
  8.         'lay path cua node
  9.         Dim path As String = selectedNode.Name + "[text()='" + selectedNode.Text + "']"
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Sáu 07/08/2009 9:06 pm

cảm ơn anhtuyenbk lần nữa, mình đọc bài của anhtuyenbk rồi và đã cố gắn làm lại .

đúng là mình muốn:

Xóa node con bất kỳ được chọn trong treeview tương ứng với node đó trong file xml.


mình đã làm đường dẫn như phần hồi âm trên nhưng mà vẫn ko xóa được . nếu có thể anhtuyenbk lúc nào rảnh viết giúp mình cái vi du thì tốt lắm tốt lắm.

cảm ơn anhtuyenbk lần nữa

chúc sức khỏe

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: XML trong .NET

Gửi bàigửi bởi anhtuyenbk » T.Sáu 07/08/2009 9:35 pm

- Cái này chỉ là vấn đề lưu path của element mà thôi, khi cần thì lấy nó ra để xác định chính cái element đó trong file xml, và tốt nhất là dùng thuộc tính Name của TreeNode để lưu.
- Bạn ko xóa được là do cái path bạn lưu sai--> ko get ra node đó trong xml được--> ko xóa được.
- Cái này đơn giản và mình cũng đã hướng dẫn, bạn hãy tự vận dụng để giải quyết vấn đề của bạn.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Bảy 08/08/2009 1:27 pm

cảm ơn anhtuyenbk rất nhiệt tình, tối qua mình làm zòi nhưng vẫn chưa được nhưng mà đang cố gắn :D

chuc ban vui ve nha :)

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Ba 11/08/2009 11:37 pm

mình có file XML như sau

Mã: Chọn hết

  1.  
  2. <?xml version="1.0"?>
  3. <DT_ThuVien>
  4.   <ThuVien Ten_Thuvien="Lập Trình">
  5.     <Sach Ten_Sach="Cách sử dụng XML">
  6.       noidung sach
  7.     </Sach>
  8.   </ThuVien>
  9. </DT_ThuVien>
  10.  


+ Nếu mình xóa cái ThuVien thì mình làm như vầy xóa đựoc không báo lỗi gì hết, xóa bình thường

Mã: Chọn hết

  1.  
  2.         SelectnodeIF = doc.SelectSingleNode("DT_ThuVien/ThuVien[@Ten_Thuvien ='Lập Trình']")
  3.         If SelectnodeIF IsNot Nothing Then
  4.             doc.DocumentElement.RemoveChild(SelectnodeIF)
  5.         End If
  6.         doc.Save(Application.StartupPath + "\DT_ThuVien.xml")
  7.  


+Còn xóa cái Sach thì mình không thể xóa đựoc :( nó cứ trơ trơ ra

Mã: Chọn hết

  1.  
  2.         SelectnodeIF = doc.SelectSingleNode("DT_ThuVien/ThuVien/Sach[@Ten_Sach ='Cách sử dụng XML']")
  3.         If SelectnodeIF IsNot Nothing Then
  4.             doc.DocumentElement.RemoveChild(SelectnodeIF)
  5.         End If
  6.         doc.Save(Application.StartupPath + "\DT_ThuVien.xml")
  7.  


mong anhtuyenbk và các bạn chỉ giúp chỗ này :( mình làm hoài ko được ( ngốc quá mong đừng giận :(( )
cảm ơn các bạn

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: XML trong .NET

Gửi bàigửi bởi anhtuyenbk » T.Tư 12/08/2009 8:10 am

Vì "Sach" là node con của thư viện, do đó bạn phải get ra cái node "Thuvien" trước, rồi mói gọi cái RemoveChild của nodeThuvien để xóa node "Sach" này. Có thể dùng mẹo như sau

Mã: Chọn hết

  1. node_sach = doc.SelectSingleNode("DT_ThuVien/ThuVien/Sach[@Ten_Sach ='Cách sử dụng XML']")
  2.             node_thuvien = node_sach.ParentNode
  3.             node_thuvien.RemoveChild(node_sach)
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Tư 12/08/2009 9:17 am

hihi cảm ơn anhtuyenbk nhiều thật nhiều :d , mình sửa đựoc rồi, anhtuyenbk rất rất nhiệt tình, thanks 1 lần nữa

anhtuyenbk luôn thành công và sức khỏe :x :x :x

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Năm 27/08/2009 1:35 am

anhtuyenbk đã viết:....... Nhưng cái cách mà neverland87 dùng để update nọi dung cho CDATA quá dài dòng, thực tế hoàn toan có thể dụng thuộc tính InnerText để gán nội dung mới như các element khác..


To anhtuyenbk cho mình hỏi thăm mình phải gán như thế nào , mình làm thử cái này và ko được,


Mã: Chọn hết

  1.  
  2. Dim ss as String
  3. ss="<![CDATA[....Đợi Cập nhật nội dung: adf]]>"
  4.  
  5. node.ChildNodes(3).InnerText = ss
  6.  


bạn hướng dẫn mình với
cảm ơn bạn nhiều

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: XML trong .NET

Gửi bàigửi bởi anhtuyenbk » T.Năm 27/08/2009 8:21 am

1. Nó báo lỗi gì vậy bạn?
2. Cái childnodes 3 có tồn tại ko bạn? Nếu tồn tại rồi thì nó là element bình thường hay là kiểu CData.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Năm 27/08/2009 2:47 pm

oh nó ko có báo lỗi mà nó bị gán vào thành như vầy luôn :(
đúng là nó ra element bình thường đó anhtuyenbk ơi

Mã: Chọn hết

  1.  
  2. <TuMoi Tu="name">&lt;![CDATA[....Đợi Cập nhật nội dung: adf]]&gt;</TuMoi>
  3.  


anhtuyenbk chỉ giúp mình cảm ơn nhiều :)

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: XML trong .NET

Gửi bàigửi bởi anhtuyenbk » T.Năm 27/08/2009 4:08 pm

Bạn dùng thuộc tính InnerXml để gán trong trường hợp này.
Innertext bạn chỉ dùng khi cái node đó là kiểu CData
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Năm 27/08/2009 10:34 pm

oh , thì ra là vậy , mình vừa làm được rồi, cảm ơn anhtuyenbk nhiều, chúc anhtuyenbk ngủ ngon nha :)

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Hai 07/09/2009 12:24 am

+ Mình lại gặp rắc rối nữa rồi, hôm nay mình lưu nội dung dưới dạng CDATA và gặp rắc rối như sau

khi mình lưu nội dung dạng văn bản vvv thì tốt nhưng mà mình lưu nội dung có dạng file XML thì nó báo lổi :(
các bạn chỉ giúp mình giải quyết với


<notes>
<![CDATA[ " nếu trong đây là 1 ghi chú về XML thì bị lỗi" ]]>
</notes>

khi minh lưu 1 đoạn nọi dung dang xml thì lỗi vầy

Hình ảnh

mình xem lại thì đúng là nó ko chịu

Hình ảnh

Hình ảnh

cảm ơn các bạn nhiều lắm

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: XML trong .NET

Gửi bàigửi bởi anhtuyenbk » T.Hai 07/09/2009 9:02 am

Bạn ko được phép lồng một thẻ CDATA trong 1 thẻ CDATA khác, đây là bắt buộc.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: XML trong .NET

Gửi bàigửi bởi bigboy83 » T.Ba 08/09/2009 12:57 am

cảm ơn anhtuyenbk nhieu lắm :)

thienbi01
Bài viết: 4
Ngày tham gia: T.Tư 09/03/2011 8:42 am

Re: XML trong .NET

Gửi bàigửi bởi thienbi01 » T.Bảy 26/03/2011 11:44 am

hjhj, bài viết của máy a rất hay và có. thank máy a nhìu.
ah sẵn tiện cho e hỏi. E viết 1 đoạn code ghi du liệu ra file XML nhưng gặp rắc rối là dòng nào hok có dữ liệu thì nó định dạng là: ví dụ: "<phone type="phone" />" nếu như vậy khi úp lên web thì nó bị lỗi xuống dòng. máy a có cách nào định dạng lại khi nó rỗng thì sẽ định dạng như "<phone type="phone"><phone/>".
thank máy a trước nha.

duongvantriem
Bài viết: 1
Ngày tham gia: T.Năm 09/05/2013 5:58 pm

Re: XML trong .NET

Gửi bàigửi bởi duongvantriem » T.Sáu 26/08/2016 5:37 pm

Không add được dữ liệu vào XML các bạn ơi, mặc dù đã làm như hướng dẫn.


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.2 khách