Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 查找某个div的xpath_Objective C_Ios_Xpath_Hpple - Fatal编程技术网

Objective c 查找某个div的xpath

Objective c 查找某个div的xpath,objective-c,ios,xpath,hpple,Objective C,Ios,Xpath,Hpple,我正在使用hpple库获取网页上某个div的内容 用法: NSData* data = [trimmedString dataUsingEncoding:NSUTF8StringEncoding]; TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:data]; NSArray *elements = [xpathParser searchWithXPathQuery:@"//div[@id='container']"]; T

我正在使用hpple库获取网页上某个div的内容

用法:

NSData* data = [trimmedString dataUsingEncoding:NSUTF8StringEncoding];

TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:data];
NSArray *elements  = [xpathParser searchWithXPathQuery:@"//div[@id='container']"]; 
TFHppleElement *element = [elements objectAtIndex:0];
NSString *string = [element content];
NSLog(string);
现在我想应该用div容器的内容填充string*string

我得到了这个错误和崩溃:

*由于未捕获的异常“NSRangeException”而终止应用程序,原因:'*-[\uu NSArrayM objectAtIndex:]:索引0超出空数组的界限'

现在我猜这是因为它没有用那个div的任何东西填充数组?一个原因是它没有找到我给它的解析链接,但它没有在xpathParser上崩溃,所以我猜它解析的很好

这告诉我这行的xpath是错误的:

searchWithXPathQuery:@"//div[@id='content']"];
有人能帮我找到文本“我需要下面的所有文本:”下面div的xpath吗?(我已经提供了上面的所有div。(这是html页面上的最后一个div)


        • <中偶数sf-item-4 sf-depth-1 sf-total-children-3 sf-parent-0 sf-single-children-3 menuparent“>
          • =“中奇sf-item-3 sf-depth-2 sf无子项”>
          • <中等偶数sf-item-6 sf-depth-1 sf-total-children-5 sf-parent-0 sf-single-children-5 menuparent“>
            • 每月档案
              • (1)
              你的行李架有多安全? 我需要以下所有文本: 数据中心的安全性是一个大问题,尤其是对于为多个(通常是竞争性的)客户托管多个机架的同一位置中心而言。尽管访问数据中心的安全性通常令人印象深刻,但单个机架级别的安全性往往不足。考虑到内部员工和外部工程师的数量,从电缆商到存储设备,都是如此d服务器提供商几乎每天都要在数据中心内徘徊,机架级安全性差是一个潜在风险

              利伯曼软件公司(Lieberman Software)最近进行的一项调查显示,42%的IT员工可以未经授权访问其组织中最敏感的信息,包括首席执行官的私人文档
              <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-68 node-type-article" >
              <div id="container">
                  <section id="main" role="main">
                      <header>
                          <div id="logo"><a href="/"><img src="/sites/all/themes/bmco/images/logo.gif" /></a></div>
                          <nav class="navigation" id="mainmenu">
                                <div class="region region-menupanel">
                  <div id="block-superfish-1" class="block block-superfish">
              
              
                <div class="content">
                  <ul id="superfish-1" class="sf-menu main-menu sf-horizontal sf-style-default sf-total-items-7 sf-parent-items-5 sf-single-items-2"><li id="menu-566-1" class="first odd sf-item-1 sf-depth-1 sf-no-children"><a href="/" title="" class="sf-depth-1 ">home</a></li><li id="menu-567-1" class="middle even sf-item-2 sf-depth-1 sf-total-children-6 sf-parent-children-0 sf-single-children-6 menuparent"><a href="/company" title="data centre design and build" class="sf-depth-1  menuparent">company</a><ul><li id="menu-395-1" class="first odd sf-item-1 sf-depth-2 sf-no-children"><a href="/case-studies" class="sf-depth-2 ">case studies</a></li><li id="menu-393-1" class="middle even sf-item-2 sf-depth-2 sf-no-children"><a href="/news" class="sf-depth-2 ">news</a></li><li id="menu-608-1" class="middle odd sf-item-3 sf-depth-2 sf-no-children"><a href="/downloads" title="" class="sf-depth-2 ">downloads</a></li><li id="menu-572-1" class="middle even sf-item-4 sf-depth-2 sf-no-children"><a href="/meet-team" class="sf-depth-2 ">meet the team</a></li><li id="menu-609-1" class="middle odd sf-item-5 sf-depth-2 sf-no-children"><a href="/working-you" title="2bm is committed to being a responsible business.  We aim to ensure that, in everything we do, we meet the highest standards of business ethics and conduct." class="sf-depth-2 ">working with you</a></li><li id="menu-607-1" class="last even sf-item-6 sf-depth-2 sf-no-children"><a href="/blog" title="" class="sf-depth-2 ">blog</a></li></ul></li><li id="menu-573-1" class="middle odd sf-item-3 sf-depth-1 sf-total-children-12 sf-parent-children-0 sf-single-children-12 menuparent"><a href="/design-and-build" title="" class="sf-depth-1  menuparent">design and build</a><ul><li id="menu-583-1" class="first odd sf-item-1 sf-depth-2 sf-no-children"><a href="/design-and-build/access-and-security" class="sf-depth-2 ">access and security</a></li><li id="menu-577-1" class="middle even sf-item-2 sf-depth-2 sf-no-children"><a href="/design-and-build/cabling" class="sf-depth-2 ">cabling</a></li><li id="menu-585-1" class="middle odd sf-item-3 sf-depth-2 sf-no-children"><a href="/design-and-build/clinical-cleaning" class="sf-depth-2 ">clinical cleaning</a></li><li id="menu-580-1" class="middle even sf-item-4 sf-depth-2 sf-no-children"><a href="/design-and-build/cooling" class="sf-depth-2 ">cooling</a></li><li id="menu-579-1" class="middle odd sf-item-5 sf-depth-2 sf-no-children"><a href="/design-and-build/electrical-supply" class="sf-depth-2 ">electrical supply</a></li><li id="menu-582-1" class="middle even sf-item-6 sf-depth-2 sf-no-children"><a href="/design-and-build/fire-supression" title="Data Centre Fire Suppression and Detection" class="sf-depth-2 ">fire suppression</a></li><li id="menu-574-1" class="middle odd sf-item-7 sf-depth-2 sf-no-children"><a href="/design-and-build/flooring" class="sf-depth-2 ">flooring</a></li><li id="menu-586-1" class="middle even sf-item-8 sf-depth-2 sf-no-children"><a href="/design-and-build/maintenance" class="sf-depth-2 ">maintenance</a></li><li id="menu-581-1" class="middle odd sf-item-9 sf-depth-2 sf-no-children"><a href="/design-and-build/power-monitoring" class="sf-depth-2 ">power monitoring</a></li><li id="menu-578-1" class="middle even sf-item-10 sf-depth-2 sf-no-children"><a href="/design-and-build/project-management" class="sf-depth-2 ">project management</a></li><li id="menu-584-1" class="middle odd sf-item-11 sf-depth-2 sf-no-children"><a href="/design-and-build/racking" class="sf-depth-2 ">racking</a></li><li id="menu-575-1" class="last even sf-item-12 sf-depth-2 sf-no-children"><a href="/design-and-build/room-construction-and-layout" class="sf-depth-2 ">room construction and layout</a></li></ul></li><li id="menu-588-1" class="middle even sf-item-4 sf-depth-1 sf-total-children-3 sf-parent-children-0 sf-single-children-3 menuparent"><a href="/monitoring" title="" class="sf-depth-1  menuparent">monitoring</a><ul><li id="menu-590-1" class="first odd sf-item-1 sf-depth-2 sf-no-children"><a href="/monitoring/environmental-monitoring" class="sf-depth-2 ">environmental monitoring</a></li><li id="menu-592-1" class="middle even sf-item-2 sf-depth-2 sf-no-children"><a href="/monitoring/innovative-cabling" class="sf-depth-2 ">innovative cabling</a></li><li id="menu-589-1" class="last odd sf-item-3 sf-depth-2 sf-no-children"><a href="/monitoring/sensorium-software" class="sf-depth-2 ">sensorium software</a></li></ul></li><li id="menu-587-1" class="middle odd sf-item-5 sf-depth-1 sf-total-children-10 sf-parent-children-0 sf-single-children-10 menuparent"><a href="/room-and-rack-infrastructure" title="" class="sf-depth-1  menuparent">room and rack</a><ul><li id="menu-598-1" class="first odd sf-item-1 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/iec-lock" class="sf-depth-2 ">IEC lock</a></li><li id="menu-594-1" class="middle even sf-item-2 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/kvm" class="sf-depth-2 ">KVM</a></li><li id="menu-597-1" class="middle odd sf-item-3 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/ups" class="sf-depth-2 ">UPS</a></li><li id="menu-576-1" class="middle even sf-item-4 sf-depth-2 sf-no-children"><a href="/design-and-build/airflow-management" class="sf-depth-2 ">airflow management</a></li><li id="menu-595-1" class="middle odd sf-item-5 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/aisle-containment" class="sf-depth-2 ">aisle containment</a></li><li id="menu-599-1" class="middle even sf-item-6 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/clinical-cleaning" class="sf-depth-2 ">clinical cleaning</a></li><li id="menu-593-1" class="middle odd sf-item-7 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/floor-tiles" class="sf-depth-2 ">floor tiles</a></li><li id="menu-596-1" class="middle even sf-item-8 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/power-strips" class="sf-depth-2 ">power strips</a></li><li id="menu-600-1" class="middle odd sf-item-9 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/racks" class="sf-depth-2 ">racks</a></li><li id="menu-601-1" class="last even sf-item-10 sf-depth-2 sf-no-children"><a href="/room-and-rack-infrastructure/security" class="sf-depth-2 ">security</a></li></ul></li><li id="menu-591-1" class="middle even sf-item-6 sf-depth-1 sf-total-children-5 sf-parent-children-0 sf-single-children-5 menuparent"><a href="/imeter" title="The 2bm iMeter - data centre power monitoring" class="sf-depth-1  menuparent">iMeter</a><ul><li id="menu-604-1" class="first odd sf-item-1 sf-depth-2 sf-no-children"><a href="/imeter/zero-downtime-0" title="data centre power monitoring" class="sf-depth-2 ">Zero Downtime</a></li><li id="menu-602-1" class="middle even sf-item-2 sf-depth-2 sf-no-children"><a href="/imeter/why-imeter" title="power and environmental monitoring" class="sf-depth-2 ">Why iMeter</a></li><li id="menu-610-1" class="middle odd sf-item-3 sf-depth-2 sf-no-children"><a href="/imeter/how-it-works-0" title="power and environmental monitoring" class="sf-depth-2 ">How it works</a></li><li id="menu-603-1" class="middle even sf-item-4 sf-depth-2 sf-no-children"><a href="/imeter/imeter-monitoring-software" title="power and environmental monitoring software" class="sf-depth-2 ">Monitoring software</a></li><li id="menu-611-1" class="last odd sf-item-5 sf-depth-2 sf-no-children"><a href="/imeter/case-studies" title="University of Nottingham opts for 2bm iMeter power and environmental monitoring solution" class="sf-depth-2 ">Case Studies</a></li></ul></li><li id="menu-565-1" class="last odd sf-item-7 sf-depth-1 sf-no-children"><a href="/contact-us" class="sf-depth-1 ">contact us</a></li></ul>  </div>
              </div>
                </div>
                          </nav>
                          <div id="headerimagepanel">
                              <div id="headerimage"><img src="/sites/all/themes/bmco/images/newsheader.jpg" /></div>
                              <div id="headermenu"><nav id="hmenupanel" class="navigation"></nav></div>
                          </div>
                      </header>
                      <nav id="menupanel">
                          <nav id="archivemenu" class="navigation">  <div class="region region-archivemenublog">
                  <div id="block-views-blog-archive-block" class="block block-views">
              
                  <h2>Monthly archive</h2>
              
                <div class="content">
                  <div class="view view-blog-archive view-id-blog_archive view-display-id-block view-dom-id-a384fd1f4628f80c660e22d4df3b4779">
              
              
              
                    <div class="view-content">
                    <div class="item-list">
                <ul class="views-summary">
                    <li><a href="/blog/archive/201208">August 2012</a>
                            (1)
                        </li>
                  </ul>
              </div>
                  </div>
              
              
              
              
              
              
              </div>  </div>
              </div>
                </div>
              </nav>  
                      </nav>
                      <div id="contentpanel">
                                                      <h2 class="title" id="page-title">How secure are your racks? </h2>
              
                            <div class="region region-content">
                  <div id="block-system-main" class="block block-system">
              
              
                <div class="content">
                  <div id="node-68" class="node node-article node-promoted clearfix" about="/blog/how-secure-are-your-racks" typeof="sioc:Item foaf:Document">
              
              
                  I need all this text below:
              
                <div class="content">
                  <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Data centre security is a big issue – especially for co-location centres hosting multiple racks for multiple, often competing, clients. Yet whilst security to access the data centre can often be impressive, individual rack level security is often inadequate. Given the number of in-house staff and external engineers, from cablers to storage and server providers, traipsing through a data centre on a near daily basis, poor rack level security is a potential risk.</p>
              <p>According to a recent survey conducted by Lieberman Software, 42 percent of IT staff can get unauthorised access to their organisation’s most sensitive information – including the CEO’s private documents. The failing is blamed on management’s naivety when it comes to understanding just how much privileged access their IT departments actually have.</p>
              <p>The fact that most racks are secured only with standard handles using a manual key, bears out this survey. Easily broken or bypassed, these locks provide minimal corporate protection; they offer no access control or audit trail of activity. Given the huge ongoing investment in data centres - during 2011-2012, the UK invested an estimated $3.35 billion in data centres; the second highest spending of any country, according to the Datacentre Dynamics Global Industry Census 2011 - extending standard access control techniques to the data centre racks is an important step.</p>
              <p>Companies can opt for a rack specific key, combination locks or key cards that are IP enabled to allow an organisation to impose strict control over the time/day an individual is allowed to access the rack. Using standard access control software, all activity is recorded and audited, providing the organisation with a complete list of those who have accessed the racks.</p>
              <p>For organisations, this approach adds control and addresses one important aspect of the internal threat. For co-location sites, rack level security removes the need to cage off client specific rack space areas freeing up space that can be used for more racks, delivering a return on investment, as well as improved client security.</p>
              </div></div></div>  </div>
              
              TFHppleElement *element  = [xpathParser peekAtSearchWithXPathQuery:@"//div[@id='node-68']"]; 
              // Use peekAtSearchWithXPathQuery as there is only one vdiv with this id so you directly get the element (the function grabs the first element that corresponds to the XPath query)
              
              -(NSString*) getStringForTFHppleElement:(TFHppleElement *)element {
              
                  NSMutableString *result = [NSMutableString new];
              
                  // Iterate recursively through all children
                  for (TFHppleElement *child in [element children])
                      [result appendString:[self getStringForTFHppleElement:child]];
              
                  // Hpple creates a <text> node when it parses texts
                  if ([element.tagName isEqualToString:@"text"])
                      [result appendString:element.content];
              
                  return result;
              }