PHP SimpleXML节点的原始内容

时间:2016-06-29 13:50:13

标签: php simplexml

我使用PHP SimpleXML来解析文件中的数据。比方说,我有以下XML内容:



import React from 'react';
import { Link } from 'react-router';

class RecommendedPosts extends React.Component {

constructor() {
super(props);
this.state = {
posts: this.shuffle(this.props.posts)
}
}

shuffle(posts){
 ///shuffle using some algo
return posts
}

render() {
return (
  <ul>
    {this.state.posts.map((post, idx) => {
      return (
        <li key={idx}>
          <p>{post.title}</p>
          <p>{post.text}</p>
          <p>{post.category}</p>
          <Link to={`/blog/post-1/:${post.id}`}>Weiter lesen</Link>
        </li>
      );
    })}
  </ul>
);
}
}
RecommendedPosts.propTypes = {
posts: React.PropTypes.array,
};
export default RecommendedPosts;
&#13;
&#13;
&#13;

我基本上想要得到节点内部的实际原始内容。即我需要它来返回&#34; innerXML&#34; parent1就像文本,标签和所有。无法让PHP执行此操作。帮助

1 个答案:

答案 0 :(得分:2)

获取确切内容&#39; <child1>blah</child1><child2>blah blah</child2>&#39;就像你自己一样,你最好把它们放在<![CDATA[]]>之下。然后你就可以把它当作自己的东西。

xml应该是这样的::

<?xml version="1.0" ?>
<root>
  <parent1>
    <![CDATA[<child1>blah</child1>
    <child2>blah blah</child2>]]>
  </parent1>
  <parent2>blah</parent2>
</root>

然后

$xml = simplexml_load_string($xmlstring, 'SimpleXMLElement', LIBXML_NOCDATA);

$parent1 = $xml->parent1->asXml();
echo "<pre>";echo ($parent1);echo "<pre>";

这将输出:

<child1>blah</child1>
<child2>blah blah</child2>