我想访问xml的一个节点内容,该怎么做呢?

lsyapple 2006-05-31 10:29:08
我想访问下面的xml中的 introduce字段。
有没有简单的方法可以读取?

谢谢了。最好是vb.net的
<?xml version="1.0" encoding="gb2312" ?>
<JLResponse>
<HotelInfo>
<Hotel>
<Address>HotelAddress</Address>
<CityCode></CityCode>
<Star>StarRating</Star>
<Name>Hotelname</Name>
<Telephone>HotelTelephone</Telephone>
<FAX />
<HotelDescription>
<Introduce>HotelIntroduce</Introduce>
<Traffic>TrafficIntroduce</Traffic>
</HotelDescription>
<Room>
<RoomName>RoomName</RoomName>
<Description></Description>
<PublicPrice></PublicPrice>
<SalePrice></SalePrice>
<Availability>RoomStatus</Availability>
<RateChanged></RateChanged>
<PaymentType>PaymentType</PaymentType>
<Meal>Meal</Meal>
</Room>
</Hotel>
</HotelInfo>
</JLResponse>
...全文
226 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsyapple 2006-06-05
  • 打赏
  • 举报
回复
恩.是数据出了问题.谢谢各位.散分.:)
yd 2006-05-31
  • 打赏
  • 举报
回复

呵呵, 用软件换成vb的 。 估计是用2003的格式转的

2005一些东东更严格

chenyuming2004(这辈子我算是废了)的方法很简便~:)
chenyuming2004 2006-05-31
  • 打赏
  • 举报
回复
呵呵C#代码是测试通过发上来的,
vb.net的就不懂了,机子没装vb,而且我也不会vb.
只是把我的C#代码,用软件换成vb的.
yd 2006-05-31
  • 打赏
  • 举报
回复
chenyuming2004(这辈子我算是废了) 的方法就可以。不过你的VB代码可能是在vs2003下的。

如果楼主用的是2005可能会报错。 我贴的是2005下的VB代码
yd 2006-05-31
  • 打赏
  • 举报
回复

Dim document1 As New System.Xml.XmlDataDocument
document1.Load(Me.Server.MapPath("1.xml"))
Dim node1 As System.Xml.XmlNode = document1.DocumentElement.SelectSingleNode("HotelInfo/Hotel/HotelDescription/Introduce")
Me.Response.Write(node1.InnerText)

楼主试试,应该可以
jedliu 2006-05-31
  • 打赏
  • 举报
回复
GetXml.xml就是根据你的XML生成的文件,不过你的XML有点错误,就是<FAX /> 不完整,不删掉肯定出错!
VB的是:

Dim doc As New XmlDocument
Dim fileName As String = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
fileName = fileName.Substring(0, fileName.IndexOf("\\bin"))
doc.Load(fileName + "\\GetXml.xml")
Dim root As XmlElement = doc.DocumentElement
Dim IntroduceNode As XmlNode = root.ChildNodes(0).ChildNodes(0).ChildNodes(5).ChildNodes(0)

IntroduceNode 就是那个你要的节点
jedliu 2006-05-31
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();
string fileName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
fileName = fileName.Substring(0,fileName.IndexOf("\\bin"));
doc.Load(fileName + "\\GetXml.xml");
XmlElement elem = doc.DocumentElement;
XmlNode node = elem.ChildNodes[0].ChildNodes[0].ChildNodes[5].ChildNodes[0];
string nodeText = node.InnerText;
lsyapple 2006-05-31
  • 打赏
  • 举报
回复
饿。楼上的兄弟,运行程序后 好象报错饿。。。


未将对象引用设置到对象的实例。


能解决下吗?麻烦啦。。。。。
chenyuming2004 2006-05-31
  • 打赏
  • 举报
回复
Dim document1 As New XmlDataDocument
document1.Load(MyBase.Server.MapPath("1.xml"))
Dim node1 As XmlNode = document1.DocumentElement.SelectSingleNode("HotelInfo/Hotel/HotelDescription/Introduce")
MyBase.Response.Write(node1.InnerText)


vb.net的代码
chenyuming2004 2006-05-31
  • 打赏
  • 举报
回复
XmlDataDocument xDoc = new XmlDataDocument();
xDoc.Load(Server.MapPath("1.xml"));
XmlNode xn = xDoc.DocumentElement.SelectSingleNode("HotelInfo/Hotel/HotelDescription/Introduce");
Response.Write(xn.InnerText);
lsyapple 2006-05-31
  • 打赏
  • 举报
回复
能直接 连接我的这个xml 写一段代码给我吗?谢谢啦。麻烦了。
softdeveloper 2006-05-31
  • 打赏
  • 举报
回复
xml操作示例,里面只有一层节点,多层可以递归或循环读取childNodes:
XmlDocument xmlRole = new XmlDocument();
xmlRole.Load(HttpContext.Current.Server.MapPath(AppRoot + "xml/" + FileName));
XmlElement root = xmlRole.DocumentElement;
XmlNodeList nodeList = root.SelectNodes("Item");

arrNodes = new XmlRecord[nodeList.Count];

foreach(XmlNode nodeRole in nodeList)
{
arrNodes[intExtloop].ItemCode = nodeRole.Attributes["code"].Value.Trim();
arrNodes[intExtloop].ItemCaption = nodeRole.Attributes"caption"].Value.Trim();
intExtloop ++;
}
ilovejolly 2006-05-31
  • 打赏
  • 举报
回复
mark

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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