我正在尝试创建一个iOS应用程序(除了其他一些东西)需要加载Wordpress-Page的内容
当我使用Wordpress的XML-RPC功能中的getPosts功能时,我得到以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<array><data>
<value><struct>
<member><name>post_id</name><value><string>23</string></value></member>
<member><name>post_title</name><value><string><!--:de-->Post1<!--:--><!--:en-->Post1<!--:--></string></value></member>
<member><name>post_date</name><value><dateTime.iso8601>20140211T14:26:39</dateTime.iso8601></value></member>
<member><name>post_date_gmt</name><value><dateTime.iso8601>20140211T12:26:39</dateTime.iso8601></value></member>
<member><name>post_modified</name><value><dateTime.iso8601>20140217T22:32:45</dateTime.iso8601></value></member>
<member><name>post_modified_gmt</name><value><dateTime.iso8601>20140217T20:32:45</dateTime.iso8601></value></member>
<member><name>post_status</name><value><string>publish</string></value></member>
<member><name>post_type</name><value><string>post</string></value></member>
<member><name>post_name</name><value><string>im-notfall</string></value></member>
<member><name>post_author</name><value><string>1</string></value></member>
<member><name>post_password</name><value><string></string></value></member>
<member><name>post_excerpt</name><value><string></string></value></member>
<member><name>post_content</name><value><string><!--:de--><b>Post1</b><!--:--><!--:en--><b>Post1</b><!--:--></string></value></member>
<member><name>post_parent</name><value><string>0</string></value></member>
<member><name>post_mime_type</name><value><string></string></value></member>
<member><name>link</name><value><string>http://example.com/ExampleProjekt/?p=23</string></value></member>
<member><name>guid</name><value><string>http://example.com/ExampleProjekt/?p=23</string></value></member>
<member><name>menu_order</name><value><int>5</int></value></member>
<member><name>comment_status</name><value><string>closed</string></value></member>
<member><name>ping_status</name><value><string>open</string></value></member>
<member><name>sticky</name><value><boolean>0</boolean></value></member>
<member><name>post_thumbnail</name><value><array><data>
</data></array></value></member>
<member><name>post_format</name><value><string>standard</string></value></member>
<member><name>terms</name><value><array><data>
<value><struct>
<member><name>term_id</name><value><string>1</string></value></member>
<member><name>name</name><value><string>Allgemein</string></value></member>
<member><name>slug</name><value><string>allgemein</string></value></member>
<member><name>term_group</name><value><string>0</string></value></member>
<member><name>term_taxonomy_id</name><value><string>1</string></value></member>
<member><name>taxonomy</name><value><string>category</string></value></member>
<member><name>description</name><value><string></string></value></member>
<member><name>parent</name><value><string>0</string></value></member>
<member><name>count</name><value><int>3</int></value></member>
</struct></value>
</data></array></value></member>
<member><name>custom_fields</name><value><array><data>
</data></array></value></member>
</struct></value>
<value><struct>
<member><name>post_id</name><value><string>9</string></value></member>
<member><name>post_title</name><value><string><!--:de-->Post2<!--:--><!--:en-->Post2<!--:--></string></value></member>
<member><name>post_date</name><value><dateTime.iso8601>20140206T13:16:56</dateTime.iso8601></value></member>
<member><name>post_date_gmt</name><value><dateTime.iso8601>20140206T11:16:56</dateTime.iso8601></value></member>
<member><name>post_modified</name><value><dateTime.iso8601>20140217T22:33:01</dateTime.iso8601></value></member>
<member><name>post_modified_gmt</name><value><dateTime.iso8601>20140217T20:33:01</dateTime.iso8601></value></member>
<member><name>post_status</name><value><string>publish</string></value></member>
<member><name>post_type</name><value><string>post</string></value></member>
<member><name>post_name</name><value><string>neuer-erster-beitrag</string></value></member>
<member><name>post_author</name><value><string>1</string></value></member>
<member><name>post_password</name><value><string></string></value></member>
<member><name>post_excerpt</name><value><string></string></value></member>
<member><name>post_content</name><value><string><!--:de--><b>Post2</b><!--:--><!--:en--><b>Post2</b><!--:--></string></value></member>
<member><name>post_parent</name><value><string>0</string></value></member>
<member><name>post_mime_type</name><value><string></string></value></member>
<member><name>link</name><value><string>http://example.com/ExampleProjekt/?p=9</string></value></member>
<member><name>guid</name><value><string>http://example.com/ExampleProjekt/?p=9</string></value></member>
<member><name>menu_order</name><value><int>3</int></value></member>
<member><name>comment_status</name><value><string>closed</string></value></member>
<member><name>ping_status</name><value><string>open</string></value></member>
<member><name>sticky</name><value><boolean>0</boolean></value></member>
<member><name>post_thumbnail</name><value><array><data>
</data></array></value></member>
<member><name>post_format</name><value><string>standard</string></value></member>
<member><name>terms</name><value><array><data>
<value><struct>
<member><name>term_id</name><value><string>1</string></value></member>
<member><name>name</name><value><string>Allgemein</string></value></member>
<member><name>slug</name><value><string>allgemein</string></value></member>
<member><name>term_group</name><value><string>0</string></value></member>
<member><name>term_taxonomy_id</name><value><string>1</string></value></member>
<member><name>taxonomy</name><value><string>category</string></value></member>
<member><name>description</name><value><string></string></value></member>
<member><name>parent</name><value><string>0</string></value></member>
<member><name>count</name><value><int>3</int></value></member>
</struct></value>
</data></array></value></member>
<member><name>custom_fields</name><value><array><data>
</data></array></value></member>
</struct></value>
<value><struct>
<member><name>post_id</name><value><string>5</string></value></member>
<member><name>post_title</name><value><string><!--:de-->Post3<!--:--><!--:en-->Post3<!--:--></string></value></member>
<member><name>post_date</name><value><dateTime.iso8601>20131217T17:32:09</dateTime.iso8601></value></member>
<member><name>post_date_gmt</name><value><dateTime.iso8601>20131217T15:32:09</dateTime.iso8601></value></member>
<member><name>post_modified</name><value><dateTime.iso8601>20140217T22:33:18</dateTime.iso8601></value></member>
<member><name>post_modified_gmt</name><value><dateTime.iso8601>20140217T20:33:18</dateTime.iso8601></value></member>
<member><name>post_status</name><value><string>publish</string></value></member>
<member><name>post_type</name><value><string>post</string></value></member>
<member><name>post_name</name><value><string>test-beitrag-2</string></value></member>
<member><name>post_author</name><value><string>1</string></value></member>
<member><name>post_password</name><value><string></string></value></member>
<member><name>post_excerpt</name><value><string></string></value></member>
<member><name>post_content</name><value><string><!--:de--><b>Post3</b><!--:--><!--:en--><b>Post3</b><!--:--></string></value></member>
<member><name>post_parent</name><value><string>0</string></value></member>
<member><name>post_mime_type</name><value><string></string></value></member>
<member><name>link</name><value><string>http://example.com/ExampleProjekt/?p=5</string></value></member>
<member><name>guid</name><value><string>http://example.com/ExampleProjekt/?p=5</string></value></member>
<member><name>menu_order</name><value><int>4</int></value></member>
<member><name>comment_status</name><value><string>closed</string></value></member>
<member><name>ping_status</name><value><string>open</string></value></member>
<member><name>sticky</name><value><boolean>0</boolean></value></member>
<member><name>post_thumbnail</name><value><array><data>
</data></array></value></member>
<member><name>post_format</name><value><string>standard</string></value></member>
<member><name>terms</name><value><array><data>
<value><struct>
<member><name>term_id</name><value><string>1</string></value></member>
<member><name>name</name><value><string>Allgemein</string></value></member>
<member><name>slug</name><value><string>allgemein</string></value></member>
<member><name>term_group</name><value><string>0</string></value></member>
<member><name>term_taxonomy_id</name><value><string>1</string></value></member>
<member><name>taxonomy</name><value><string>category</string></value></member>
<member><name>description</name><value><string></string></value></member>
<member><name>parent</name><value><string>0</string></value></member>
<member><name>count</name><value><int>3</int></value></member>
</struct></value>
</data></array></value></member>
<member><name>custom_fields</name><value><array><data>
</data></array></value></member>
</struct></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
现在我正试图通过以下两个foreach语句获得我需要的一些字段(内容,标题,ID等):
GDataXMLDocument *XMLdoc = [[GDataXMLDocument alloc] initWithData:XMLcontent options:0 error:nil];
NSArray *XMLofPosts = [XMLdoc nodesForXPath:@"//methodResponse/params/param/value/array/data/value" error:nil];
for(GDataXMLNode *post in XMLofPosts){
NSArray *postMembers = [post nodesForXPath:@"//value/struct/member" error:nil];
for(GDataXMLElement *postMember in postMembers){
NSString *key = [[[postMember elementsForName:@"name"] objectAtIndex:0] stringValue];
NSString *value = [[[postMember elementsForName:@"value"] objectAtIndex:0] stringValue];
// ...
}
}
但是我遇到了这个问题,postMembers包含XML Document中的所有成员,而不仅仅是一个“post”的成员。 我做错了什么或有办法解决这个问题吗?
答案 0 :(得分:0)
对于以/
开头的任何XPath查询,您告诉XPath引擎忽略当前上下文并从根开始。使用//value
,无论您传递的是哪种上下文项,都要查询来自根的所有<value/>
元素。
使用以下XPath查询应返回您要查找的元素:
查找上下文。我在开头删除了不必要的第二个/
(这会降低对查询的评估速度)并添加/struct
轴步(我想你只是忘记了?)。
/methodResponse/params/param/value/array/data
返回当前上下文的所有<member/>
:
value/struct/member
或者您也可以使用
明确表示使用当前上下文.
(我更喜欢,因为它清楚地说明了我想要的XPath表达式)。
./value/struct/member