xmlDocument方法的基本使用说明

在项目中第一次用xmldocument,刚用起来还有点晕,下面是自己的一些见解,呵呵

原来都是用 datatable来进行数据筛选的,select() ,这次项目中用xmldoucment

 XmlElement elementHotel = xmlHotelInfo.DocumentElement;//得到首节点后的所有节点元素;

  XmlNode nodeHotel = elementHotel.ChildNodes.Item( 0 );//得到第一个节点

nodeHotel.SelectNodes("//HotelId")[0].InnerText//在节点中搜索 节点名为 HoelId的第一个节点的innerText

SelectNodes("//HotelId/HotelRoom")和SelectNodes("//HotelRoom")的区别是,//HoelId//HotelRoom搜索HotelId节点下的HotelRoom。而//HotelRoom是搜索所有节点的//HotelRoom。

selectNodes( "//HotelId")[0] == selectNodes( "//HotelId").Item( 0 )

elementHotel.SelectNodes("descendant::HotelRoom[HotelId = " + HotelId + "]");//搜索节点HotelRoom下,节点为HoelId且innerText = HotelId 的节点集合。

注意:InnerText ,InnerXml, OutXml的区别。

//在集合中搜索节点数据

foreach ( XmlNode PriceNode in xmlDocPrice.SelectNodes("//TotalPrice") )
                            {
                                if ( isFisrt )
                                {
                                    dMinPrcie       = Convert.ToDecimal( PriceNode.InnerText );
                                    strPriceUnion   = PriceNode.NextSibling.InnerText;
                                    isFisrt         = false;
                                }
                                else if (dMinPrcie > Convert.ToDecimal(PriceNode.InnerText))
                                {
                                    dMinPrcie       = Convert.ToDecimal( PriceNode.InnerText );
                                    strPriceUnion   = PriceNode.NextSibling.InnerText;//这样是正确的

//如果:  strPriceUnion   = PriceNode.SelectNodes("//PriceUnit")[0].InnerText//错误,每次都是第一个节点得到

的PriceUnit.InnerText,这个要注意,如果通过 for循环就简单些,PriceNode.SelectNodes("//PriceUnit")[i].InnerText 因为你在select 时候,还是针对,此nodeList的document的select,返回的都是同一个list.

}
                            }

for循环如下即可:

for ( int j = 0; j < nodeList.Count; j++ )
                    {
                        XmlNode priceNode = nodeList.Item( j );
                        start   = Convert.ToDateTime( priceNode.SelectNodes("//StartTime")[j].InnerText );
                        end     = Convert.ToDateTime( priceNode.SelectNodes("//EndTime")[j].InnerText );

                        if ( start <= NowDay && end >= NowDay )
                        {
                            isExistPrice            = true;//房型在价格区间内有价格
                            strMemberPrice          = priceNode.SelectNodes("//MemberPrice")[j].InnerText;
                            strWeekendPrice         = priceNode.SelectNodes("//WeekendPrice")[j].InnerText;
                            strUnionMemberPrice     = priceNode.SelectNodes("//UnionMemberPrice")[j].InnerText;
                            strUnionWeekendPrice    = priceNode.SelectNodes("//UnionWeekendPrice")[j].InnerText;
                            break;
                        }
                    }
因为是初次用,不知道还有什么好的方法进行筛选数据,这样有些笨,但是用xml 处理完数据可以删除,可以提高速度

  foreach ( XmlNode node in nodeRoomList )
                            {
                                xmlDocPrice.DocumentElement.AppendChild( xmlDocPrice.ImportNode( node, true ) );//插入节点
                                elementRoomPrice.RemoveChild( node );//删除节点
                            }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax (Asynchronous JavaScript and XML) 是一种用于创建动态 Web 应用程序的技术,它可以在不重新加载整个页面的情况下向服务器发送请求并接收响应,这使得 Web 应用程序更加快速和交互性。Ajax 最常用于以下情况: 1. 实时搜索:当用户输入搜索关键字时,Ajax 可以通过异步请求向服务器发送搜索请求并返回结果,而不必等待整个页面重新加载。 2. 动态加载内容:当用户与页面交互时,Ajax 可以通过异步请求向服务器请求数据并动态更新页面内容,而不必重新加载整个页面。 3. 表单验证:当用户提交表单时,Ajax 可以通过异步请求向服务器发送请求并验证表单输入,而不必重新加载整个页面。 4. 轮询:当需要实时更新应用程序状态时,Ajax 可以通过定期发送异步请求来轮询服务器并获取最新的状态信息。 使用 Ajax 的基本步骤如下: 1. 创建 XMLHttpRequest 对象。 2. 使用 XMLHttpRequest 对象打开要发送的请求。 3. 设置请求头和请求参数。 4. 发送请求。 5. 在接收到响应后,使用回调函数处理响应。 以下是一个使用 Ajax 实现实时搜索的示例: HTML: ``` <input type="text" id="searchInput" onkeyup="search()"> <ul id="searchResults"></ul> ``` JavaScript: ``` function search() { var input = document.getElementById("searchInput").value; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var results = JSON.parse(xhr.responseText); var resultList = document.getElementById("searchResults"); resultList.innerHTML = ""; for (var i = 0; i < results.length; i++) { var li = document.createElement("li"); li.appendChild(document.createTextNode(results[i])); resultList.appendChild(li); } } }; xhr.open("GET", "search.php?q=" + input, true); xhr.send(); } ``` 在上面的示例中,当用户在输入框中输入文本时,search() 函数将被调用。该函数创建一个 XMLHttpRequest 对象并向服务器发送 GET 请求,请求的参数是输入框中的文本。在收到服务器响应后,search() 函数解析响应并动态更新页面内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值