ввод данных html в xml - PullRequest
       20

ввод данных html в xml

4 голосов
/ 21 февраля 2010

Мне нужна твоя помощь. Мне нужно получить данные, введенные в веб-формах и преобразовать в xml

любая помощь будет очень полезна для моего.

привет Чили!


пример:

У меня есть контактная форма, содержащая комментарии по электронной почте и т. Д. Что мне нужно, так это то, что при отправке вся эта информация хранится в файле XML, например:

<form>
    <name>Felipe Avila</name>
    <email>favila@domain.com</email>
    etc
</form>

как то так .. http://xmlfiles.com/articles/michael/htmlxml/default.asp

Ответы [ 3 ]

3 голосов
/ 21 февраля 2010

Как правило, вы должны определить структуру XML-документа, который вы хотите создать первым. Это значительно облегчит написание кода для заполнения указанного документа. Однако, если вы хотите что-то действительно общее для создания XML-документа для любой веб-формы, вот как вы могли бы сделать это:

XmlDocument buildDocument(Control control)
{
    var xmlDoc = new XmlDocument();
    xmlDoc.AppendChild(xmlDoc.CreateElement("Form"));
    buildDocumentRecursive(xmlDoc, control);
    return xmlDoc;
}

void buildDocumentRecursive(XmlDocument xmlDoc, Control control)
{
    var textCtrl = control as IEditableTextControl;
    if (textCtrl != null)
    {
        var element = xmlDoc.CreateElement(control.ClientID);
        element.InnerText = textCtrl.Text;
        xmlDoc.DocumentElement.AppendChild(element);
    }
    // If you want to check for check boxes, radio buttons, etc., add other cases
    else
    {
        foreach (var child in control.Controls)
        {
            buildDocumentRecursive(xmlDoc, child);
        }
    }
}

Еще один способ сделать это:

var document = new XDocument(
    new XElement(
        "Fields",
        from field in Request.Form.AllKeys
        select new XElement(field, Request.Form[field])));        
0 голосов
/ 21 февраля 2010

Вы можете без проблем вставить любой текст в раздел XML <![CDATA[]]>.

Хотя это не очень полезно, поскольку вы не можете использовать XPath или XSLT для данных в этом разделе.

Вам необходимо указать более подробную информацию в своем вопросе - как вводится текст, какой формат XML вам нужно создать? Для чего?

Обновление: (следующий комментарий)

Используйте пространство имен XML в .NET - в частности, класс XmlDocument - здесь есть метод Сохранить , который позволит вам указать имя файла для сохранения (хотя его стоит посмотреть при других перегрузках к нему).

Вы можете добавить элементы аналогичным образом по ссылке, указанной в вашем вопросе, используя методы AppendChild .

Примерно так:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.AppendChild(xmlDoc.CreateElement("form"));

XmlElement nameElement = xmlDoc.CreateElement("name");
nameElement.InnerText = nameCtrl.Text;
xmlDoc.DocumentElement.AppendChild(nameElement);

XmlElement emailElement = xmlDoc.CreateElement("email");
emailElement.InnerText = emailCtrl.Text;
xmlDoc.DocumentElement.AppendChild(emailElement);
0 голосов
/ 21 февраля 2010

Мои два цента [и это еще далеко не все]
Пройдите по дереву документа ... или по дочерним узлам вашей формы. Добавляйте текст в строку по мере продвижения.
Это будет включать в себя рекурсию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...