0

xmlを検討してください

<data>
 <node1>
        some text some text <nested-node>nest node content</nested-node> some text
 </node1>
</data>

タグにアクセスしたい<node1>(できる)が、次のようにコンテンツを取得したい...

some text some text &lt;nested-node&gt;nest node content &lt;/nested-node&gt; 
some text

どうすればこれを達成できますか?

4

2 に答える 2

0

問題は、上部の XML が適切に形成されていないことです。

テキスト シーケンスでタグを使用することはできません。パーサーはそのような要素を削除します。

XML エスケープ

エスケープ文字一覧

これとともに:

$xml = new SimpleXMLElement(file_get_contents('xmltest.xml'));
var_dump($xml->node1);

ノードを読み取ることができます。

于 2012-04-16T08:55:12.263 に答える
0

この質問が気になりました。OPが望んでいることをすることは本当に不可能ですか? @Stony は、不正な XML がこれを不可能にすると指摘しました。OP が望む方法で XML 関数が不正な形式の XML で機能しなくても、私は驚かないでしょう。

XML で要素をネストする例を次に示します: http://www.featureblend.com/xml-nesting.html

XML を次のように作成する場合:

<data>
  <master_node>
    <nested1>First nested node text.</nested1>
    <nested2>Second nested node text.</nested2>
    <nested3>Third nested node text.</nested3>
  </master_node>
</data>

すべてのテキスト コンテンツを取得できます。

$xml = new SimpleXMLElement(file_get_contents('xmltest.xml'));
var_dump($xml->master_node);

おそらく、JavaScript やプレーンな PHP と同様のことが可能です。ファイルを変数にロードし、正規表現または文字列検索関数で解析するだけです。正規表現を使用して XML を解析することは、そうです、正規表現を使用して HTML を解析するようなものです。

于 2012-04-16T09:51:24.180 に答える