0

以下のように xml データ交換を実行したいと思います。

着信 xml データには、タグ名がわからないタグ​​がいくつかあります。

タグ名を知らなくてもタグを読むことはできますか? また、データ属性としてタグ名を取得するにはどうすればよいですか?

例: さまざまな患者の記録を読みたい。患者さんはそれぞれ異なる病気を持っています。「心臓病」「がん」など。

<heart disease>serious</heart disease>
<cancer>normal</cancer>

以前は両方のタグを知りませんでした。タグ名を読み取って提示したい。最後に、次のデータを取得できます: 心臓病: 重篤ながん 正常:

4

3 に答える 3

1

まず最初に、空白は有効な XML タグにならないことを警告しておく必要があると思います。を追加できますが、それはタグ<white space>STUFF</white space>として読み取られます。より寛容なインタープリターを使用すると、それが真のブール属性<white>を持っていることに気付くかもしれません。をspaceに置き換えます。\s-

DOMDocument では、子ノードであるという事実以外は何も知らずに子ノードを読み取るには、適切な名前のchildNodesプロパティを使用します。

$doc = new DOMDocument();
$rand = rand(1,100);
$doc->loadXML('<root><i'.$rand.'><cannot-know-i /></i'.$rand.'></root>');
foreach( $doc->documentElement->childNodes as $node )
    print $node->nodeName; // i$rand
于 2011-08-15T04:43:08.833 に答える
1

はい、できます。たとえば、Simple XML を使用すると、次のようになります。

$xml = new SimpleXMLElement($fileName, NULL, true);

foreach ($xml->children() as $child)
{
    print child->getName();

    foreach ($child->attributes() as $attribute)
    {
        print $attribute.', ';
    }
}
于 2011-08-15T04:43:59.850 に答える
0

XML を別の形式にフォーマットすることをお勧めします。あなたが知っているフォーマットで。このようなもの:

<?xml version="1.0" ?> 
    <Information>
        <Disease target="heart" />
        <Cancer type="normal" />
    </Information>
</xml>

次に、プログラミング言語 (あなたの場合は PHP) で利用可能なすべてのパーサーを使用できます。

于 2011-08-15T07:13:32.780 に答える