First, it has come to my attention that emails from our exchange server are
getting threaded incorrectly, so if this ends up in a wrong thread, instead of
as a new thread, I apologize.
On to the issue.
Basically I am trying to mimic the results of:
api.php?action=query&list=categorymembers&cmtitle=category:Foo
I have code that iterates over an object and extracts attributes and creates an
indexed array with the relevant attributes of the element as well as other
elements.
The indexed array looks like this:
$attribs = array('pageid'=>$articleID, 'ns'=>$namespaceID,
'title'=>$preFixedTitle, 'classification'=>$classString);
When I try calling $result->addValue( array('query','categorymembers'), 'cm',
$attribs ) from inside the iteration I get the error:
"Exception Caught: Internal error in ApiResult::setElement: Attempting to merge
element cm"
(external to the iteration I get [as expected] the correct format, but for only
the final value of $attribs)
If I try omitting the $name (whether by using an empty string, null, or using
$attribs as $name and omitting $value) I get this error:
"Exception Caught: Internal error in ApiFormatXml::recXmlPrint:
(categorymembers, ...) has integer keys without _element value. Use
ApiResult::setIndexedTagName()."
So I tried using $result->setIndexedTagName($attribs, 'cm') but that doesn't
change anything.
I have been trying to find an example of setIndexedTagName() in use in the
code, so that I can understand how it is used correctly, but I haven't managed
yet. I have read the doxygen generated docs on ApiResult, but I am still
unclear on the correct usage and, more importantly, the appropriate
implantation of it.
Can anyone here provide some insight, please? Either on a better way to mimic
the output, or the correct usage of the methods in question.
Thank you in advance.
--Sean Prunka
_______________________________________________
Mediawiki-api mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api