Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php从xml中按顺序获取value和childlen元素_Php_Html_Xml_Xliff - Fatal编程技术网

如何使用php从xml中按顺序获取value和childlen元素

如何使用php从xml中按顺序获取value和childlen元素,php,html,xml,xliff,Php,Html,Xml,Xliff,我有一个包含value和children元素的xml witch,如下所示: <rk id="1" type="seg"> some text <g id="11">italic text</g> other text </rk> 某些文本斜体文本其他文本 我必须按顺序获取值和子元素: $arr = [ 'value1' => 'some text ', 'children' => '<g id="11">

我有一个包含value和children元素的xml witch,如下所示:

<rk id="1" type="seg">
  some text <g id="11">italic text</g> other text
</rk>

某些文本斜体文本其他文本
我必须按顺序获取值和子元素:

$arr = [
  'value1' => 'some text ',
  'children' => '<g id="11">italic text</g>',
  'value2' => ' other text'
];
$arr=[
'value1'=>'some text',
“子项”=>“斜体文本”,
“值2”=>“其他文本”
];
主要目标是在我们更改了值之后,能够以正确的顺序将其放回xml文件

如果您想看到更准确的示例,下面是一段代码,上面是xml,下面是php计数器部分:

<source>
        <x id="10">
            <rk id="1" type="seg">
                some text<g id="11">italic text</g> other text
            </rk>
        </x>

        <rk id="2">
            text <g id="12">italic text</g>
        </rk>
    </source>*/

    $source = [
        0 => [
            'tag' => 'x',
            'attrs' => [
                0 => [
                    'name' => 'id',
                    'value' => '10'
                ]
            ],
            'childrens' => [
                0 => [
                    'tag' => 'rk',
                    'attrs' => [
                        0 => [
                            'name' => 'id',
                            'value' => '1'
                        ],
                        1 => [
                            'name' => 'type',
                            'value' => 'seg'
                        ]
                    ],
                    'value1' => 'some text ',
                    'childrens' => [
                        0 => [
                            'tag' => 'g',
                            'attrs' => [
                                0 => [
                                    'name' => 'id',
                                    'value' => '10'
                                ]
                            ],
                            'value' => 'italic text',
                            'childrens' => []
                        ],
                    ],
                    'value2' => ' other text',
                ]
            ]
        ],
        1 => [
            'tag' => 'rk',
            'attrs' => [
                0 => [
                    'name' => 'id',
                    'value' => '2'
                ],
                1 => [
                    'name' => 'type',
                    'value' => 'seg'
                ]
            ],
            'value1' => 'text',
            'childrens' => [
                0 => [
                    'tag' => 'g',
                    'attrs' => [
                        0 => [
                            'name' => 'id',
                            'value' => '12'
                        ]
                    ],
                    'value' => 'italic text',
                    'childrens' => []
                ],
            ],
        ]
    ];

一些文本斜体文本其他文本
文本斜体文本
*/
$source=[
0 => [
'tag'=>'x',
'attrs'=>[
0 => [
'name'=>'id',
“值”=>“10”
]
],
“儿童”=>[
0 => [
“标记”=>“rk”,
'attrs'=>[
0 => [
'name'=>'id',
“值”=>“1”
],
1 => [
“名称”=>“类型”,
'值'=>'分段'
]
],
'value1'=>'some text',
“儿童”=>[
0 => [
'tag'=>'g',
'attrs'=>[
0 => [
'name'=>'id',
“值”=>“10”
]
],
“值”=>“斜体文本”,
“儿童”=>[]
],
],
'value2'=>'other text',
]
]
],
1 => [
“标记”=>“rk”,
'attrs'=>[
0 => [
'name'=>'id',
“值”=>“2”
],
1 => [
“名称”=>“类型”,
'值'=>'分段'
]
],
'value1'=>'text',
“儿童”=>[
0 => [
'tag'=>'g',
'attrs'=>[
0 => [
'name'=>'id',
“值”=>“12”
]
],
“值”=>“斜体文本”,
“儿童”=>[]
],
],
]
];

请向我们展示您的努力。我想知道在这种情况下如何使用xml,当xml看起来像这样时:[编辑]:我想知道在这种情况下如何使用xml,当xml看起来像这样时:“一些文本两个其他文本”。所以我想把它转换成数组(因为我们有大的XML,我们需要在网页上编辑它们,但我们不想每次都解析文件,所以我们想保存在数据库(mongoDB)中)。我们还需要将数组转换回新值。如果您需要一个库来使用PHP中的XLIFF,请查看答案。别忘了投票支持你认为有用的答案。如果没有,请改进您的问题,并写下您是如何尝试从XML到数组的,以及哪些不适合您。顺便说一句,如果您的示例应该是XLIFF 1.2,那么它是无效的:
rk
元素应该是
mrk
@Twois请参见