1

これは私のXMLです

<MyXML ID="tester" Server="example.com">
  <CONF>
    <MYAPP LOCN="/Application/data/" DATADIR="/tmp/data">
     ..
  </CONF>
</MyXML>

これは私が使用しているコードです

  NSString *xmlFilePath =@"/Applications/conf/MyConf.xml";
  NSLog(@"%@",xmlFilePath);
  NSData *xmlData = [NSData dataWithContentsOfFile:xmlFilePath];
  NSString *xPathQuery =@"/MyXML";
  NSArray *xmlArray = PerformXMLXPathQuery(xmlData,xPathQuery);

完全な XML を NSArray として提供します。この NSArray をトラバースする方法、または XPath を使用してノードと属性を正確に取得する方法。私は使用しました

  NSString *xPathQuery =@"/MyXML[@ID]";

ただし、属性 ID は返されず、null が返されるだけです。

NSArray をトラバースするのが最善だと思いますが、その方法を教えてください (私は Objective C の初心者です。

4

1 に答える 1

2

Cocoa articleのlibxml2 ラッパーと XML 解析および XPath クエリに libxml2 を使用するをご覧ください。

NSArray *PerformXMLXPathQuery(NSData *document, NSString *query);
NSArray *PerformHTMLXPathQuery(NSData *document, NSString *query);

NSData オブジェクト "document" に含まれる XML ドキュメント全体に対して、この関数は NSString "query" で XPath クエリを実行し、クエリに一致するノードの NSDictionary ノード オブジェクトの NSArray を返します。

リストされた 2 つの関数の唯一の違いは、最初の関数は適切な XML データを想定し、2 番目の関数は HTML データを想定していることです。

于 2012-07-13T19:32:53.330 に答える