提取xml节点文本和子节点所需的XML帮助(PHP)

时间:2012-02-24 17:29:21

标签: php xml dom

请考虑以下xml代码段。

<s1>
 S1 Tag: s1 content 1
 <test1>Test1 Tag: content</test1>
 S1 Tag: s1 content 2
 <test2>Test2 Tag: content</test2>
 S1 Tag: s1 content 3
</s1>

我想提取<s1>标记文本( S1标记:s1内容1,S1标记:s1内容2,S1标记:s1内容3 )及其所有子标记( <test1><test2>)及其内容( Test1标记:内容,测试2标记:内容)。

输出可以是任何格式,例如(最后我必须在db中保留它并将检索以再次生成相同的xml)

  S1 tag: S1 Tag: s1 content 1

  test1 tag: Test1 Tag: content

  S1 Tag: s1 content 2

  test2 tag: Test2 Tag: content

  S1 Tag: s1 content 3

2 个答案:

答案 0 :(得分:0)

使用simplexml:

   $stuff = " <s1>
 S1 Tag: s1 content 1
 <test1>Test1 Tag: content</test1>
 S1 Tag: s1 content 2
 <test2>Test2 Tag: content</test2>
 S1 Tag: s1 content 3
</s1>";

    $xml = simplexml_load_string($stuff);

    $test1 = (string) $xml->s1->test1;

    write_to_db($field, $test1);

答案 1 :(得分:-1)

通过以下正则表达式删除所有标签是否相同

preg_replace('<[^>]+>', ' ', $xmlStr)