我需要使用一些非常简单和快速的解决方案将XML文件转换为数组。这人看对我好:不一致的XML解析
json_decode(json_encode(simplexml_load_string($xmlContent, "SimpleXMLElement", LIBXML_NOCDATA)), true);
这样做的问题在于,它把多个孩子由每名儿童的关联数组的索引数组,但如果只有一个孩子在家长的标签,这不是用一个元素创建一个索引数组,并将一个assoc数组直接放到父标签元素中。我需要这些场景的输出保持一致。即索引数组首先不依赖于孩子的数量。我的目标是解析后的一致模式。
多个孩子的一个例子:
输入:
<PICK_NOTE_LINES>
<LINE>
<PICK_LINE_NUM>1</PICK_LINE_NUM>
<PRODUCT_CODE>3342</PRODUCT_CODE>
<BATCH_CODE></BATCH_CODE>
<QUANTITY>1</QUANTITY>
</LINE>
<LINE>
<PICK_LINE_NUM>2</PICK_LINE_NUM>
<PRODUCT_CODE>5285</PRODUCT_CODE>
<BATCH_CODE></BATCH_CODE>
<QUANTITY>1</QUANTITY>
</LINE>
</PICK_NOTE_LINES>
输出(我在LINE父元素索引数组):
['PICK_NOTE_LINES'=>['LINE'=>[['PICK_LINE_NUM'=>1, ...],['PICK_LINE_NUM'=>2, ...]]]
一个儿童的例子:
<PICK_NOTE_LINES>
<LINE>
<PICK_LINE_NUM>1</PICK_LINE_NUM>
<PRODUCT_CODE>3342</PRODUCT_CODE>
<BATCH_CODE></BATCH_CODE>
<QUANTITY>1</QUANTITY>
</LINE>
</PICK_NOTE_LINES>
输出(在该行的父元素的关联数组):
['PICK_NOTE_LINES'=> ['LINE'=>['PICK_LINE_NUM'=>1, ...]]]
是否有可能得到它总是把孩子培养成即使它只有一个孩子,一个索引数组?如果这是不可能的,我可以使用什么来获得一致的输出?
显然,你的当前代码是不可能的。修改它来做你所需要的。 –
@u_mulder我想也许有一些分析器选项可以做到这一点。 – Sergey