1

次のように、定数USER_PRINTXML_URLで定義されたファイルを取得するNSXMLDocumentを作成しています。

NSXMLDocument *ads_user_printxml = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL URLWithString:USER_PRINTXML_URL]    options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA)                                          error:&ads_err];

次に、XPathを使用して、次のようにXMLファイル内の目的の場所に移動します。

NSArray* ipp_folder = [[ads_user_printxml nodesForXPath:@".//root/printing/IPP"error:&ads_err] objectAtIndex:0];

ここで、XMLファイルの要素の後にNSXMLElementsを追加したい場合、どうすればよいですか?

私は次のことを試みました:

NSXMLElement *s= [ipp_folder objectAtIndex:0];

しかし、これは実行時エラーを生成しています。また、NSArrayにデータを配置する代わりにNSXMLNodeを使用しようとしましたが、やはり役に立ちませんでした。解決策は非常に単純だと思いますが、私は一生の間、ドキュメントで答えを見つけることができません。

助けてくれてありがとう。

4

1 に答える 1

2

-nodesForXPath:error:を返しますNSArray*が、2番目のコードスニペットはすでにそれに適用さ-objectAtIndex:れています。したがって、ipp_folder配列を保持するのではなく、へのポインタを保持しますNSXMLNode。宣言されたタイプを修正します。

次に、メソッドを使用してその親を識別し、-parentメソッドを使用して親の子内のそのインデックスを識別できます-index。次に、親がであると仮定するとNSXMLElement、次のことができます。

[[ipp_folder parent] insertChild:someNewNode atIndex:[ipp_folder index] + 1];
于 2012-04-25T11:42:54.660 に答える