状況: 現在XML :: LibXMLを使用してXMLからデータを抽出しています。これをXML要素のXpathと組み合わせると、XMLのほとんどの値を読み込んで置き換えることができます。しかし、私はXMLの最初のタグの特定のデータにアクセスすることはできません。それはかなり重要な分野ですが、私はいくつかの方法を試していますが、まだその分野を操作することはできません。Xpath経由でPerlを使用してXMLからデータを抽出する
XMLファイル:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test **date_time="201111031006"** xsi:noNamespaceSchemaLocation="test.xsd">
<msg_ver>0001</msg_ver>
<sender_id>john</sender_id>
<recipient_id>mike</recipient_id>
</test>
私は(太字)DATE_TIMEフィールドにアクセスしようとしていますが、私はそうするように見える傾けます。私はXPathをコピーして同様に試してみると、うまくいきません。実際にフィールドを変更することはできますが、date_timeフィールドを変更することはできません。私はフィールドからデータを抽出することさえできません。私は同じ機能を使用して、フィールドの変更を読み込み、保存することができます。
マイコード
sub CHANGE_DATE()
{
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($newfile);
my $query = "/tradenet/@date_time"; ## this is the actual XPATH
my($node) = $doc->findnodes($query);
$node->setData("$date");
$doc->toFile($newfile);
これを通して見るのにかかる時間のために事前にありがとう...
ありがとうございました。私が元のXML文書を分類して編集しなければならなかったので、タイプミスのために私の謝罪。したがって、XPATH名のエラー。再度、感謝します。 –