Все аргументы функции в ECMAScript передаются по значению. Это означает, что значение вне функции копируется в аргумент внутри функции так же, как значение копируется из одной переменной в другую. Если значение является примитивным, то оно действует так же, как и примитивная переменная, и если значение является ссылкой, оно действует как копия ссылочной переменной. Это часто является путаницей для разработчиков, поскольку к переменным обращаются как по значению, так и по ссылке, но аргументы передаются только по значению. Когда аргумент передается по значению, значение копируется в локальную переменную (именованный аргумент и в ECMAScript - слот в объекте arguments). Когда аргумент передается по ссылке, местоположение значения в памяти сохраняется в локальной переменной, что означает, что изменения в локальной переменной отражаются вне функции. (Это невозможно в ECMAScript.)
Как насчет Mini-XML? Он легкий, работает с gcc, совместим с ANSI-C ...
http://www.minixml.org/index.php
Согласно к документации, для поиска конкретных узлов было бы так же просто, как:
/* Find the first "a" element */
node = mxmlFindElement(tree, tree, "a",
NULL, NULL,
MXML_DESCEND);
Как только вы получите узел, вы можете манипулировать им в соответствии с вашими требованиями.
Если C ++ в порядке, вы можете попробовать TinyXML . Я использовал его в течение нескольких лет, и он работает хорошо.
Парсер Expat - лучшее, с чем я столкнулся - я использую его в своем коде на C ++, предпочитая различные синтаксические анализаторы C ++, но он написан на C. Очень прост в использовании и встраивании в вашем приложении. Поэтому я не понимаю, почему в вашем вопросе вы говорите:
(кроме lib eXpat)
blockquote>есть ли у вас что-то против?