提取“<>”标签内的文本
Extract text inside "<>" tag
我是使用 LUA 的菜鸟。我正在努力在这个标签“<>”
中提取 XML 中的一些文本
<?xml version="1.0" encoding="UTF-8"?>
<ejemplar gaceta="Gaceta de Notificaciones de la Dirección Divisional de Patentes" volumen="12 de mayo" fecha_puesta_circulacion="12 de mayo de 2022" schemaLocation="http://siga.impi.gob.mx/resources/xsd/gaceta.xsd">
<seccion nombre="Solicitudes de Patentes">
<ficha>
<campo>
<clave><![CDATA[Número del Oficio]]></clave>
<valor><![CDATA[42207]]></valor>
</campo>
<campo>
<clave><![CDATA[Fecha del Oficio]]></clave>
<valor><![CDATA[10 de Mayo de 2022]]></valor>
</campo>
<campo>
<clave><![CDATA[Descripción general del asunto]]></clave>
<valor><![CDATA[Procede el otorgamiento.]]></valor>
</campo>
我想提取此文本以将其放在多个变量上
<ejemplar gaceta="Gaceta de Notificaciones de la Dirección Divisional de Patentes" volumen="12 de mayo" fecha_puesta_circulacion="12 de mayo de 2022" schemaLocation="http://siga.impi.gob.mx/resources/xsd/gaceta.xsd">
并最终获得
gaceta = "Gaceta de Notificaciones de la Dirección Divisional de Patentes"
volumen = 12 de mayo
fecha_puesta_circulacion="12 de mayo de 2022"
如果您使用 XML 工具和 API,从 XML 文档中提取信息会容易得多。您要提取的信息是不同 attributes.
的值
您可以 select 使用此 XPath 的 ejemplar
元素中的所有这些:/ejemplar/@*
如果您只想要名为 gaceta
的属性:/ejemplar/@gaceta
文档中的所有属性? //@*
不确定 XML 和 LUA 中的 XPath 支持的最佳库是什么,但一些快速搜索指向:https://github.com/bkersten/lua-xpath、
使用string.gmatch
将字符串拆分为name=value
对
local str = [=[
<?xml version="1.0" encoding="UTF-8"?>
<ejemplar gaceta="Gaceta de Notificaciones de la Dirección Divisional de Patentes" volumen="12 de mayo" fecha_puesta_circulacion="12 de mayo de 2022" schemaLocation="http://siga.impi.gob.mx/resources/xsd/gaceta.xsd">
<seccion nombre="Solicitudes de Patentes">
<ficha>
<campo>
<clave><![CDATA[Número del Oficio]]></clave>
<valor><![CDATA[42207]]></valor>
</campo>
<campo>
<clave><![CDATA[Fecha del Oficio]]></clave>
<valor><![CDATA[10 de Mayo de 2022]]></valor>
</campo>
<campo>
<clave><![CDATA[Descripción general del asunto]]></clave>
<valor><![CDATA[Procede el otorgamiento.]]></valor>
</campo>
]=]
local ejemplars = {}
for ejemplar in str:gmatch"<ejemplar (.-)>" do
local vars = {}
for name, value in ejemplar:gmatch'([%w_]+)="(.-)"' do
vars[name] = value
end
table.insert(ejemplars, vars)
end
for j = 1, #ejemplars do
print(ejemplars[j].gaceta)
print(ejemplars[j].volumen)
print(ejemplars[j].fecha_puesta_circulacion)
end
我是使用 LUA 的菜鸟。我正在努力在这个标签“<>”
中提取 XML 中的一些文本<?xml version="1.0" encoding="UTF-8"?>
<ejemplar gaceta="Gaceta de Notificaciones de la Dirección Divisional de Patentes" volumen="12 de mayo" fecha_puesta_circulacion="12 de mayo de 2022" schemaLocation="http://siga.impi.gob.mx/resources/xsd/gaceta.xsd">
<seccion nombre="Solicitudes de Patentes">
<ficha>
<campo>
<clave><![CDATA[Número del Oficio]]></clave>
<valor><![CDATA[42207]]></valor>
</campo>
<campo>
<clave><![CDATA[Fecha del Oficio]]></clave>
<valor><![CDATA[10 de Mayo de 2022]]></valor>
</campo>
<campo>
<clave><![CDATA[Descripción general del asunto]]></clave>
<valor><![CDATA[Procede el otorgamiento.]]></valor>
</campo>
我想提取此文本以将其放在多个变量上
<ejemplar gaceta="Gaceta de Notificaciones de la Dirección Divisional de Patentes" volumen="12 de mayo" fecha_puesta_circulacion="12 de mayo de 2022" schemaLocation="http://siga.impi.gob.mx/resources/xsd/gaceta.xsd">
并最终获得
gaceta = "Gaceta de Notificaciones de la Dirección Divisional de Patentes"
volumen = 12 de mayo
fecha_puesta_circulacion="12 de mayo de 2022"
如果您使用 XML 工具和 API,从 XML 文档中提取信息会容易得多。您要提取的信息是不同 attributes.
的值您可以 select 使用此 XPath 的 ejemplar
元素中的所有这些:/ejemplar/@*
如果您只想要名为 gaceta
的属性:/ejemplar/@gaceta
文档中的所有属性? //@*
不确定 XML 和 LUA 中的 XPath 支持的最佳库是什么,但一些快速搜索指向:https://github.com/bkersten/lua-xpath、
使用string.gmatch
将字符串拆分为name=value
对
local str = [=[
<?xml version="1.0" encoding="UTF-8"?>
<ejemplar gaceta="Gaceta de Notificaciones de la Dirección Divisional de Patentes" volumen="12 de mayo" fecha_puesta_circulacion="12 de mayo de 2022" schemaLocation="http://siga.impi.gob.mx/resources/xsd/gaceta.xsd">
<seccion nombre="Solicitudes de Patentes">
<ficha>
<campo>
<clave><![CDATA[Número del Oficio]]></clave>
<valor><![CDATA[42207]]></valor>
</campo>
<campo>
<clave><![CDATA[Fecha del Oficio]]></clave>
<valor><![CDATA[10 de Mayo de 2022]]></valor>
</campo>
<campo>
<clave><![CDATA[Descripción general del asunto]]></clave>
<valor><![CDATA[Procede el otorgamiento.]]></valor>
</campo>
]=]
local ejemplars = {}
for ejemplar in str:gmatch"<ejemplar (.-)>" do
local vars = {}
for name, value in ejemplar:gmatch'([%w_]+)="(.-)"' do
vars[name] = value
end
table.insert(ejemplars, vars)
end
for j = 1, #ejemplars do
print(ejemplars[j].gaceta)
print(ejemplars[j].volumen)
print(ejemplars[j].fecha_puesta_circulacion)
end