查询 SharePoint 列表并使用 LuaLaTeX 排版响应

查询 SharePoint 列表并使用 LuaLaTeX 排版响应

我想根据 SharePoint 列表中存储的数据生成一些报告。可以使用 Web 服务查询列表并以 xml 数据格式检索数据。

例如,使用以下curl命令向我的 SharePoint 网站发送请求

curl --ntlm --user "user:pass" -H "Content-Type: text/xml;charset=UTF-8" --data @request.txt --output answer.txt http://intranet/_vti_bin/lists.asmx

使用request.txt包含

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
        <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
            <listName>Test</listName>
            <query>
                <Query>
                    <Where>
                        <IsNotNull>
                            <FieldRef Name="Title" />
                        </IsNotNull>
                    </Where>
                </Query>
            </query>
            <viewFields>
                <ViewFields>
                    <FieldRef Name='Title' />
                    <FieldRef Name='Day' />
                </ViewFields>
            </viewFields>
            <QueryOptions>
                <IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>
                <ViewFieldsOnly>TRUE</ViewFieldsOnly>
            </QueryOptions>
        </GetListItems>
    </soap12:Body>
</soap12:Envelope>

从 SharePoint 中的测试列表中返回答案:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
    xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <soap:Body>
        <GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
            <GetListItemsResult>
                <listitems 
                    xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
                    xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
                    xmlns:rs='urn:schemas-microsoft-com:rowset'
                    xmlns:z='#RowsetSchema'>
                    <rs:data ItemCount="3">
                        <z:row ows_Title='Yesterday' ows_Day='2014-04-13 00:00:00' />
                        <z:row ows_Title='Today' ows_Day='2014-04-14 00:00:00' />
                        <z:row ows_Title='Tomorrow' ows_Day='2014-04-15 00:00:00' />
                    </rs:data>
                </listitems>
            </GetListItemsResult>
        </GetListItemsResponse>
    </soap:Body>
</soap:Envelope>

是否可以直接从 LuaLaTeX 发送这样的请求并将响应作为排版过程的一部分进行处理?我知道我可以使用包将请求写入文件filecontents并将调用curl包装进去,\immediate\write18{curl ...}但我想知道是否存在更好的方法可以利用 LuaLaTeX 的附加功能?

我从 Google 上发现 LuaTeX 已luasocket内置,并且luaxmlodsfile包来看似乎也相关。但是,我不知道如何开始使用这些工具。因此我的问题是:是否可以查询 SharePoint 列表(或以 xml 格式返回数据的其他 Web 服务)并使用 LuaLaTeX 解析结果?

相关内容