Вставка данных в XML-файле с PHP DOM

Я хотел бы предложить две вещи: создать отдельный метод для преобразования логического значения в представление int и переопределить метод ToString вместо создания отдельного метода ConstructDays.

public class DaysDetails
{
    public bool Sun {get;set;}
    public bool Mon {get;set;}
    ...
    public bool Sat {get;set;} //All 7 days of the week

    public override string ToString() {
        //formatted string
        return $"{GetNumberRepresentationOfBool(Sun)},{GetNumberRepresentationOfBool(Mon)},{GetNumberRepresentationOfBool(Sat)}"
    }
}

public int GetNumberRepresentationOfBool(bool value) {
    return value ? 1 : 0
}

//printing the value
Console.WriteLine(dayDetailsObject.ToString());

6
задан liewl 6 November 2008 в 00:01
поделиться

6 ответов

Ваша копия блока кода и вставлена из Ваших существующих файлов? раз так я вижу две потенциальных проблемы:

<form name='input' action'insert.php' method='post'> // should be:
<form name="input" action="insert.php" method="post">

примечание: Вы отсутствуете action="insert.php", который заставил бы форму просто перезагружать себя без представления, которое является поведением, Вы описываете.

во-вторых, удостоверьтесь, что у Вас есть разрешение записи к "sample.xml". можно подтвердить, пишете ли Вы на самом деле что-нибудь:

print 'I wrote '.$xmldoc->save('sample.xml').' bytes of data';
8
ответ дан 8 December 2019 в 13:51
поделиться

$newText = $xmldoc-> createTextNode ($newActv);

Измените эту строку на

$newText = $xmldoc-> createTextNode ($newAct);

2
ответ дан 8 December 2019 в 13:51
поделиться

Я думаю, что знаю то, что является проблемой с Вашим кодом. Вы не должны писать как этот: <?xml-stylesheet type="text/xsl" href="sample.xsl" ?> Правильный код:

<?xml:stylesheet type="text/xsl" href="sample.xsl" ?>
1
ответ дан 8 December 2019 в 13:51
поделиться

На самом деле Вы сделали ошибки в двух местах.

Эта строка должна быть, я думаю из-за опечатки, Вы пропустили знак "равно". Также

Эти строки должны быть

Попробуйте теперь, это должно работать, Транзитный участок, это имело бы некоторый смысл

2
ответ дан 8 December 2019 в 13:51
поделиться

это код, над которым я работаю.

index.php

<html>
<head><title>test</title></head>
</head>

<?php
    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml', LIBXML_NOBLANKS);

    $activities = $xmldoc->firstChild->firstChild;
    if($activities!=null){
        while($activities!=null){
            echo $activities->textContent.'<br/>';
            $activities = $activities->nextSibling;
        }
    }
?>

<form name='input' action='insert.php' method='post'>
    insert activity:
    <input type='text' name='activity'/>
    <input type='submit' value='send'/>
</form>
</body>
</html>




insert.php


<?php
    header('Location:index.php');
    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml');

    $newAct = $_POST['activity'];

    $root = $xmldoc->firstChild;

    $newElement = $xmldoc->createElement('activity');
    $root->appendChild($newElement);
    $newText = $xmldoc->createTextNode($newAct);
    $newElement->appendChild($newText);

    $xmldoc->save('sample.xml');
?>

sample.xml

<list>
  <activity>swimming</activity> 
  <activity>running</activity> 
</list>
1
ответ дан 8 December 2019 в 13:51
поделиться

Окончательное решение

sample.XML

<list>
    <activity>swimming</activity>
    <activity>running</activity>
    <activity>Jogging</activity>
    <activity>Theatre</activity>
    <activity>Programming</activity>
</list>

index.php

<html>
<head><title>test</title></head>
</head>

<?php
    $xmldoc = new DOMDocument();
    $xmldoc->load("sample.xml", LIBXML_NOBLANKS);

    $activities = $xmldoc->firstChild->firstChild;
    if($activities!=null){
        while($activities!=null){
            echo $activities->textContent."<br/>";
            $activities = $activities->nextSibling;
        }
    }
?>

<form name="input" action="insert.php" method="post">
    insert activity:
    <input type="text" name="activity"/>
    <input type="submit" value="send"/>
</form>
</body>
</html>

insert.php

<?php
    header('Location:index.php');
    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml');

    $newAct = $_POST['activity'];

    $root = $xmldoc->firstChild;

    $newElement = $xmldoc->createElement('activity');
    $root->appendChild($newElement);
    $newText = $xmldoc->createTextNode($newAct);
    $newElement->appendChild($newText);

    $xmldoc->save('sample.xml');
?>
3
ответ дан 8 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: