Lua — анализ XML из URL-адреса

Я хочу разобрать этот XML-код http://steamcommunity.com/id/GreenMarineValve?xml=1 в Lua 5.1 есть некоторые библиотеки, такие как LuaXML, но они не поддерживают синтаксический анализ URL.

Не могли бы вы дать мне ссылку на библиотеку, чтобы сделать это, если есть какой-либо совет для достижения моей цели?

-

Подробнее для тех, у кого есть опыт работы с веб-API Steam. По сути, я хочу преобразовать «customURL» в идентификатор сообщества Steam (steamID64), но я вижу, что нет другого способа сделать это без разбора XML-файла. , я мог бы разобрать его из URL-адреса, если бы это был формат JSON, а не XML.

Есть ли API, который мне не хватает, который будет принимать customURL в качестве параметра и возвращать идентификатор сообщества? Некоторые связанные ссылки на WebAPI: https://developer.valvesoftware.com/wiki/Steam_Web_API https://partner.steamgames.com/documentation/webapi


person Fiat Pax    schedule 14.08.2013    source источник


Ответы (1)


Если вы знаете, как преобразовать содержимое URL-адреса в строку Lua, получить нужные поля будет просто:

function get(data,name)
    return data:match("<"..name..">(.-)</"..name..">")
end

-- assumes C contains the downloaded contents
print(get(C,"customURL"))
print(get(C,"steamID64"))
person lhf    schedule 14.08.2013
comment
Это действительно очень полезный фрагмент кода для меня, но я не знаю, как получить содержимое URL-адреса. - person Fiat Pax; 14.08.2013
comment
@Fiat, попробуйте LuaSocket или LuaCURL. См. раздел stackoverflow.com/questions/11413127/. - person lhf; 14.08.2013
comment
Это будет слишком продвинуто для меня, я чувствую себя таким потерянным. Но это все равно отвечает на мой вопрос, я постараюсь понять это. - person Fiat Pax; 14.08.2013
comment
@Fiat, если у вас установлены curl или wget, вы можете открыть им канал и прочитать из него: f=io.popen("curl -s http://steamcommunity.com/id/GreenMarineValve?xml=1"); C=f:read"*a"; f:close(). - person lhf; 14.08.2013
comment
Большое спасибо, я установлю curl и попробую это. - person Fiat Pax; 14.08.2013