simpleXML-在计数之前删除特定节点

时间:2018-12-09 12:49:47

标签: php nodes simplexml

我有一个XML文件,其中包含多个在将这些数据导入数据库时​​不希望使用的节点。这是我的xml文件:

DataSnapshot

首先,我用以下代码计算所有子节点:

<xml version="1.0" encoding="utf-8"?>
    <METADATA>
        <META>
            <ID>001</ID>
            <SEG>CONT</SEG>
            <FIELD>XXX</FIELD>
            <VIEW>A001</VIEW>
            <PRAEFIX>POS</PRAEFIX>
            <LENG>000009</LENG>

            <NODE1/>

            <DATATYPE>STRG</DATATYPE>

            <NODE2/>

            <PARAM>FILENAME</PARAM>
            <PARAM_ZERO>MAXXXX</PARAM_ZERO>
            <PARAM_ONE>MAXXXX24</PARAM_ONE>
            <PARAM_TWO>X</PARAM_TWO>
            <PARAM_THREE>NO</PARAM_THREE>
            <PARAM_FOUR>NO</PARAM_FOUR>

            <NODE3/>
        </META>
    </METADATA>
</xml>

如您所见,它返回正确的$xml = simplexml_load_string('XMLFile'); $nodes = $xml->METADATA->META; $first_node = $nodes[0]; $count_child_nodes= count($first_node); echo $count_child_nodes; // returns 16 个子节点,无论如何我想跳过所有格式为16的节点,在我的示例中<TEXT/>,{{1} }和<NODE1/>,因此实际计数应为<NODE2/>

有人知道我该怎么做吗?我有多个XML文件,因此我不知道像<NODE3/>这样的节点会在我的XML文件中出现的频率。任何帮助将不胜感激。

0 个答案:

没有答案