0

touchxml と xpath は初めてで、ノードの属性を動的に取得する方法があるかどうかを知りたいだけですか? 私はこのxmlを持っています

<?xml version="1.0" encoding="UTF-8"?>
<countries>
   <country id="Philippines">
      <countryname>Philippines</countryname>
      <subsidiaries>
          <subsidiary>
              <name>Sartorius Philippines Inc.</name>
              <address>Unit 20-A The World Centre Building, 330 Senator Gil Puyat Avenue Makati 1209 City Philippines, Philippines</address>
              <phone>+63.2.8640.929</phone>
              <fax>+63.28640.932</fax>
              <email>enquiry.philippines@sartorius.com</email>
              <website>http://www.sartorius-mechatronics.com.ph</website>
          </subsidiary>
     </subsidiaries>
  </country>
  <country id="Denmark">
       <countryname>Denmark</countryname>
       <subsidiaries>
          <subsidiary>
              <name>Sartorius Stedim Nordic A|S</name>
              <address>stedim Hoerskaetten 6d 2630 Taastrup, Denmark</address>
              <phone>+45.7023.4400</phone>
              <fax>+45.4630.4030</fax>
              <email>ne.customersupport@sartorius.com</email>
              <website></website>
         </subsidiary>
         <subsidiary>
              <name>Sartorius Nordic A|S</name>
              <address>Hoerskaetten 6D 2630 Taastrup, Denmark</address>
              <phone>+45.7023.4400</phone>
              <fax>+45.4630.4030</fax>
              <email>ne.customersupport@sartorius.com</email>
              <website></website>
       </subsidiary>
     </subsidiaries>
    </country>
</countries>`

すべての国名を表示するテーブル ビューがあり、デンマークという単語をクリックすると、id="denmark" の属性が表示されます。

今のところ、このxpathクエリがあります:

resultNodes = [rssParser2 nodesForXPath:@"/countries/country[@id]/subsidiaries/subsidiary" error:nil];
4

1 に答える 1

1

countryIdObjective-Cで文字列を連結する最善の方法は100%わかりませんが、探しているIDの変数があると仮定すると、次のようになります。

NSString *xpath =
    [NSString stringWithFormat:@"%@/%@/%@",
         @"/countries/country[@id = '", countryId, @"']/subsidiaries/subsidiary"];
resultNodes = [rssParser2 nodesForXPath:xpath error:nil];
于 2013-01-29T09:54:42.147 に答える