我需要使用一些非常簡單和快速的解決方案將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