首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Simplexml问题..在尝试访问此数据时遇到困难

Simplexml问题..在尝试访问此数据时遇到困难
EN

Stack Overflow用户
提问于 2012-08-22 11:07:56
回答 1查看 58关注 0票数 0

我尝试使用下面的结构访问simplexml对象中的这些元素。

我花了一段时间来尝试获取这个xml块中的值:

代码语言:javascript
运行
复制
<result name="doclist" numFound="9" start="0">
    <doc>
        <str name="merchant_name_url_title">accuscore</str>
        <str name="end_date_time"/>
        <str name="category">betting & gaming</str>
        <str name="merchant_name">Accuscore</str>
        <str name="link_type">Text Link</str>
    </doc>
</result>

我正在尝试获取"numFound“的值以及每条记录的所有"doc/str”数据。

下面是完整的结构。我只显示了2个"doc“元素,但可能有数千个。

代码语言:javascript
运行
复制
<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">5</int>
        <lst name="params">
            <str name="indent">true</str>
            <str name="start">0</str>
            <str name="q">*:*</str>
            <str name="rows">2</str>
        </lst>
    </lst>
    <lst name="grouped">
        <lst name="merchant_name">
            <int name="matches">5143</int>
            <arr name="groups">
                <lst>
                    <str name="groupValue">accuscor</str>
                    <result name="doclist" numFound="9" start="0">
                        <doc>
                            <str name="merchant_name_url_title">accuscore</str>
                            <str name="end_date_time"/>
                            <str name="category">betting & gaming</str>
                            <str name="merchant_name">Accuscore</str>
                            <str name="link_type">Text Link</str>
                        </doc>
                    </result>
                </lst>
                <lst>
                    <str name="groupValue">acdse</str>
                    <result name="doclist" numFound="3" start="0">
                        <doc>
                            <str name="merchant_name_url_title">acdsee</str>
                            <str name="end_date_time"/>
                            <str name="category">computer hardware & software</str>
                            <str name="merchant_name">ACDSee</str>
                            <str name="link_type">Text Link</str>
                        </doc>
                    </result>
                </lst>
            </arr>
        </lst>
    </lst>

我的头撞在墙上好几个小时了,我决定在这里寻求一些帮助!

如有任何帮助或提示,将不胜感激。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2012-08-24 04:23:43

粘贴的XML是无效的,这不仅仅是因为您错过了</response>,还因为其中有未转义的&符号,它应该是&amp;

我还想说,它显然是由不了解XML的人编写的,因为元素名称(strarrlst等)似乎只定义了数据类型。

但是,假设您对此进行了修复并将其加载到名为$sx的SimpleXML对象中,则可以使用XPath表达式来查找所有result元素,并从那里继续操作:

代码语言:javascript
运行
复制
foreach ( $sx->xpath('//lst[@name="grouped"]//result') as $result )
{
        echo 'Begin Result; numFound: ' . (string)$result['numFound'] . PHP_EOL;
        foreach ( $result->doc as $doc )
        {
                echo 'Begin doc:' . PHP_EOL;
                foreach ( $doc->str as $str )
                {
                        echo (string)$str['name'] . ': ' . (string)$str . PHP_EOL;
                }
                echo 'End doc' . PHP_EOL . PHP_EOL;
        }
        echo 'End result' . PHP_EOL . PHP_EOL;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12065847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档