读取一个特殊的XML (分数不多,但满意的话可以追加)

iathere 2009-02-10 09:36:02
以下XML代码,请问应该如何读取NAME="LXR"这个值?

最好能写成一个类,方便调用,谢谢。

以前也看过这样的文章但是好像都是<A>XXX</A>这样的。


<?xml version="1.0" encoding="UTF-8"?>
<DBSET RESULT="1">
<ROW>
<COL NAME="LXID">01</COL>
<COL NAME="LXLX">01</COL>
<COL NAME="LXR">胡</COL>
<COL NAME="LXDH"></COL>
<COL NAME="YDDH"></COL>
<COL NAME="CZ"></COL>
<COL NAME="DZYX"></COL>
<COL NAME="LXYXJ">1</COL>
</ROW>
</DBSET>
...全文
111 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yangbin990 2009-02-11
  • 打赏
  • 举报
回复
also can use dataset.
If you like, you can define a strong type dataset.

Without usin strongtype, the code is like:

Dim dbSet As New DataSet 
dbSet.ReadXml("C:\Pracice\XMLParseLearning\Sample.xml")
'Me.DataGrid1.DataSource = dbSet.Tables("COL")
MsgBox(dbSet.Tables("COL").Select("name = 'LXR'")(0).Item("Col_text").ToString)

jnxunjie 2009-02-11
  • 打赏
  • 举报
回复
Dim xmlDoc As New Xml.XmlDocument
xmlDoc.Load(Application.StartupPath & "\dl.xml")
Dim i As Int16

For i = 0 To xmlDoc.Item("DBSET").Item("ROW").ChildNodes.Count - 1
MessageBox.Show(xmlDoc.Item("DBSET").Item("ROW").ChildNodes(i).Attributes.GetNamedItem("NAME").Value)
Next

属于XML属性读写
_NET2004 2009-02-11
  • 打赏
  • 举报
回复
LS已经说得很清楚啦
pp_shy 2009-02-11
  • 打赏
  • 举报
回复
上面的xmlDoc.Load方法中的参数是你xml文件路径

VB.NET代码如下:

Imports System.Xml

Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim DBSET As String = GetDBSET()
Dim s As String = GetValue("LXR", 1)
End Sub

Private Function GetDBSET() As String
Dim xmlDoc As New XmlDocument()
xmlDoc.Load("XML文件路径")
Dim mNode As XmlNode = xmlDoc.SelectSingleNode("DBSET")
Return mNode.Attributes("RESULT").InnerText.Trim()
End Function

Private Function GetValue(ByVal name As String, ByVal n As Integer) As String
Dim xmlDoc As New XmlDocument()
xmlDoc.Load("XML文件路径")
Dim mNodeList As XmlNodeList = xmlDoc.SelectNodes("DBSET/ROW/COL[@NAME='" & name & "']")
Return mNodeList(n).InnerText.Trim()
End Function
pp_shy 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 iathere 的回复:]
补充一下,如果是下面这样的情况,应该如何获得RESULT="2"中2这个数值,以及如何获得 <COL NAME="LXR">胡2 </COL> 中 胡2 这个值呢?
<?xml version="1.0" encoding="UTF-8"?>
<DBSET RESULT="2">
<ROW>
<COL NAME="LXID">01 </COL>
<COL NAME="LXLX">01 </COL>
<COL NAME="LXR">胡 </COL>
<COL NAME="LXDH"> </COL>
<COL NAME="YDDH"> </COL>
<COL NAME="CZ"> </COL>
<COL NAME="DZYX"> </COL>
<COL NAME…
[/Quote]

using System.Xml;


private void button1_Click(object sender, System.EventArgs e)
{
string DBSET = GetDBSET();//获取DBSET节点中RESULT属性的值“2”的方法
//获取“胡2”值的方法,由于XML数据结构是表结构,所以必须还需要类似行索引才能确定具体的值
string s = GetValue("LXR", 1);
}

private string GetDBSET()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Application.StartupPath + "\\123.xml");
XmlNode mNode = xmlDoc.SelectSingleNode("DBSET");
return mNode.Attributes["RESULT"].InnerText.Trim();
}

//这里的两个参数分别是节点值和行索引
private string GetValue(string name, int n)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Application.StartupPath + "\\123.xml");
XmlNodeList mNodeList = xmlDoc.SelectNodes("DBSET/ROW/COL[@NAME='"+name+"']");
return mNodeList[n].InnerText.Trim();
}
iathere 2009-02-11
  • 打赏
  • 举报
回复
补充一下,如果是下面这样的情况,应该如何获得RESULT="2"中2这个数值,以及如何获得<COL NAME="LXR">胡2 </COL> 中 胡2 这个值呢?
<?xml version="1.0" encoding="UTF-8"?>
<DBSET RESULT="2">
<ROW>
<COL NAME="LXID">01 </COL>
<COL NAME="LXLX">01 </COL>
<COL NAME="LXR">胡 </COL>
<COL NAME="LXDH"> </COL>
<COL NAME="YDDH"> </COL>
<COL NAME="CZ"> </COL>
<COL NAME="DZYX"> </COL>
<COL NAME="LXYXJ">1 </COL>
</ROW>
<ROW>
<COL NAME="LXID">02 </COL>
<COL NAME="LXLX">02 </COL>
<COL NAME="LXR">胡2 </COL>
<COL NAME="LXDH"> </COL>
<COL NAME="YDDH"> </COL>
<COL NAME="CZ"> </COL>
<COL NAME="DZYX"> </COL>
<COL NAME="LXYXJ">2 </COL>
</ROW>
</DBSET>
pp_shy 2009-02-10
  • 打赏
  • 举报
回复
Imports System.Xml


Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim s As String = GetApplicationSetting("LXR")
End Sub

Private Function GetApplicationSetting(ByVal name As String) As String
Dim xmlDoc As New XmlDocument()
xmlDoc.Load("xm文件的路径")
Dim mNode As XmlNode = xmlDoc.SelectSingleNode("DBSET/ROW/COL[@NAME='" & name & "']")
Return mNode.InnerText.Trim()
End Function
king19840811 2009-02-10
  • 打赏
  • 举报
回复
doc.Load("../../XMLFile1.xml");
XmlNodeList node=doc.SelectNodes("/DBSET/ROW/COL[@NAME='LXR']/text()");
foreach (XmlNode n in node)

Console.WriteLine(n.Value);
这是获取"胡"
pp_shy 2009-02-10
  • 打赏
  • 举报
回复
using System.Xml;


private void button1_Click(object sender, System.EventArgs e)
{
string s = GetApplicationSetting("LXR");//这里就是你要获取的“胡”这个值
}

private string GetApplicationSetting(string name)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("xm文件的路径");
XmlNode mNode = xmlDoc.SelectSingleNode("DBSET/ROW/COL[@NAME='"+name+"']");
return mNode.InnerText.Trim();
}
king19840811 2009-02-10
  • 打赏
  • 举报
回复
doc.Load("../../XMLFile1.xml");
XmlNodeList node=doc.SelectNodes("/DBSET/ROW/COL/@NAME");
foreach (XmlNode n in node)
if(n.Value == "LXR")
wuyq11 2009-02-10
  • 打赏
  • 举报
回复
XmlNodeList nodeList=xmlDoc.SelectSingleNode("DBSET ").ChildNodes;
foreach(XmlNode xn in nodeList)
{
XmlElement xe=(XmlElement)xn;
XmlNodeList nls=xe.ChildNodes;
foreach(XmlNode xn1 in nls)
{
XmlElement xe2=(XmlElement)xn1;
if(xe2.Name=="LXR")
{
break;
}
}
break;
}
}
http://www.cnblogs.com/chinhr/articles/1222247.html

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧