• 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#

Moderators: tungcan5diop, QUANITGROBEST

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Fri 07/08/2009 1:01 pm

Code: Select all

  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!

Code: Select all

  1.  
Last edited by bigboy83 on Fri 07/08/2009 6:16 pm, edited 1 time in total.



User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: XML trong .NET

Postby anhtuyenbk » Fri 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.

Code: Select all

  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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Fri 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

User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: XML trong .NET

Postby anhtuyenbk » Fri 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Sat 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Tue 11/08/2009 11:37 pm

mình có file XML như sau

Code: Select all

  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

Code: Select all

  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

Code: Select all

  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

User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: XML trong .NET

Postby anhtuyenbk » Wed 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

Code: Select all

  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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Wed 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Thu 27/08/2009 1:35 am

anhtuyenbk wrote:....... 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,


Code: Select all

  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

User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: XML trong .NET

Postby anhtuyenbk » Thu 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Thu 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

Code: Select all

  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 :)

User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: XML trong .NET

Postby anhtuyenbk » Thu 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Thu 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Mon 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

Image

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

Image

Image

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

User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: XML trong .NET

Postby anhtuyenbk » Mon 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ổ
Posts: 66
Joined: Thu 26/03/2009 8:26 am

Re: XML trong .NET

Postby bigboy83 » Tue 08/09/2009 12:57 am

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

thienbi01
Posts: 4
Joined: Wed 09/03/2011 8:42 am

Re: XML trong .NET

Postby thienbi01 » Sat 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
Posts: 1
Joined: Thu 09/05/2013 5:58 pm

Re: XML trong .NET

Postby duongvantriem » Fri 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.


Return to “[.NET] Bài viết hướng dẫn”

Who is online

Users browsing this forum: No registered users and 2 guests