1

私が以前に持っていた私のページは、変数からxmlファイルをロードするように切り替えようとするまでうまくいきました。現在、情報は表示されません。私がやろうとしているのは、「xml」フォルダー内にあるすべてのファイルを含むドロップ ボックス リストを作成し、リスト ボックスでそれらの選択の 1 つを選択し、そのファイルをスキャンしてその情報を表示できるようにすることです。

XML ファイル:

<?xml version='1.0' encoding='utf-8'?>
<calibredb>
  <record>
    <id>5055</id>
    <uuid>83885ffc-93d8-41ba-aee2-e5c0ae48fc68</uuid>
    <publisher>Now Comics</publisher>
    <size>5803436</size>
    <title sort="Terminator - The Burning Earth 5, The">The Terminator - The Burning Earth 5</title>
    <authors sort="Unknown">
      <author>Unknown</author>
    </authors>
    <timestamp>2012-05-13T19:38:03-07:00</timestamp>
    <pubdate>2012-05-13T19:38:03-07:00</pubdate>
    <series index="5.0">The Terminator: The Burning Earth</series>
    <cover>M:/Comics/Unknown/The Terminator - The Burning Earth 5 (5055)/cover.jpg</cover>
    <formats>
      <format>M:/Comics/Unknown/The Terminator - The Burning Earth 5 (5055)/The Terminator - The Burning Earth 5 - Unknown.cbr</format>
    </formats>
  </record>
</clibredb>

コード:

if (isset($_POST['xml']) && $_POST['xml'] != "") {
$loc = $_POST['xml'];
$dom = new DOMDocument();  
$dom->load($loc);  
foreach ($dom->getElementsByTagName('record') as $e) {

$publisher = $e->getElementsByTagName('publisher')->item(0)->textContent; 
$title = $e->getElementsByTagName('title')->item(0)->textContent;    

echo 'Title: '.$title.'<br/>';
echo 'Publisher: '.$publisher.'<br/>';

} 

}

そして、$_POST['xml']言いましょう= Now Comics.xml

ファイル名にスペースを使用しないようにする必要がありますか?

フォームコード:

<form name="xmlselect" method="post" action="convertxml.php">
<select name="xml">
<?php echo getXMLFiles(); ?>
</select>
<input type="submit" value="Submit" />
</form>

そのページの私の完全なコード:

<?php
include("config.php");
include("core.php");
function getXMLFiles() {
    if ($handle = opendir("E:/xampp/htdocs/sale/xml")) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry == "." || $entry == "..") {

            }else{
            $name = str_replace(".xml", "", $entry);
                echo '<option value="'.$entry.'">'.$name.'</option>';
            }
        }
    }
}

if (isset($_REQUEST['xml']) && $_POST['xml'] != "") {
$loc = $_POST['xml'];
$dom = new DOMDocument();  
$dom->load($loc);  
foreach ($dom->getElementsByTagName('record') as $e) {

$publisher = $e->getElementsByTagName('publisher')->item(0)->textContent; 
$title = $e->getElementsByTagName('title')->item(0)->textContent;    

echo 'Title: '.$title.'<br/>';
echo 'Publisher: '.$publisher.'<br/>';



} 

}
?> 
4

1 に答える 1

1

答えは、最初に投稿を変数にキャストすることでした。ファイルに正確な場所を含める必要がありました。

$file = $_POST['xml'];
$loc = 'E:/xampp/htdocs/sale/xml/'.$file;
$dom = new DOMDocument();  
$dom->load($loc); 
于 2012-09-01T16:28:27.530 に答える