0

我刚开始使用 XML,我有一个表单,用户在其中添加一些信息,并保存到 XML 中,这是执行此操作的代码,它工作正常:

     <%@ Page Language="C#" AutoEventWireup="true"CodeBehind="DatosFinancieros.aspx.cs"
Inherits="Tablero.DatosFinancieros" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Import Namespace="System.Xml" %>
<script runat="server">
protected void btnSave_Click(object sender, EventArgs e)
{
    string xmlPath = MapPath("Datos/DatosFinancieros.xml");
    XmlDocument doc = new XmlDocument();
    //Check if the file already exists or not
    if (System.IO.File.Exists(xmlPath))
    {
        doc.Load(xmlPath);
        XmlNode DatosNodo = CreateDatosNodo(doc);
        //Get reference to the Datos node and append the Datos node to it
        XmlNode DatosFinancierosNodo = doc.SelectSingleNode("DatosFinancieros");
        DatosFinancierosNodo.AppendChild(DatosNodo);
        lblResult.Text = "El documento ha sido actualizado";
    }
    else
    {            
        XmlNode declarationNode = doc.CreateXmlDeclaration("1.0", "", "");
        doc.AppendChild(declarationNode);
        XmlNode comment = doc.CreateComment("Este archivo representa un fragmento de lo almacenado");
        doc.AppendChild(comment);            
        XmlNode DatosFinancierosNodo = doc.CreateElement("DatosFinancieros");
        XmlNode DatosNodo = CreateDatosNodo(doc);                        
        //Append the datos node to the DatosFinancieros node            
        DatosFinancierosNodo.AppendChild(DatosNodo);
        //Append the DatosFinancieros node to the document
        doc.AppendChild(DatosFinancierosNodo);
        lblResult.Text = "El documento ha sido creado";
    }
    doc.Save(xmlPath);
}
XmlNode CreateDatosNodo(XmlDocument doc)
{
XmlNode datosNodo = doc.CreateElement("Datos");
// Add Neta Mensual attribute to the Datos Node
XmlAttribute NetaMensualAttribute = doc.CreateAttribute("NetaMensual");
NetaMensualAttribute.Value = txtNetaMensual.Text;
datosNodo.Attributes.Append(NetaMensualAttribute);

XmlAttribute NetaAcumuladoAttribute = doc.CreateAttribute("NetaAcumulado");
NetaAcumuladoAttribute.Value = txtNetaAcumulado.Text;
datosNodo.Attributes.Append(NetaAcumuladoAttribute);

XmlAttribute MensualAttribute = doc.CreateAttribute("Mensual");
MensualAttribute.Value = txtMensual.Text;
datosNodo.Attributes.Append(MensualAttribute);

XmlAttribute AcumuladoAttribute = doc.CreateAttribute("Acumulado");
AcumuladoAttribute.Value = txtAcumulado.Text;
datosNodo.Attributes.Append(AcumuladoAttribute);

XmlAttribute LiquidezAttribute = doc.CreateAttribute("Liquidez");
LiquidezAttribute.Value = txtLiquidez.Text;
datosNodo.Attributes.Append(LiquidezAttribute);

XmlAttribute AccionMensualAttribute = doc.CreateAttribute("AccionMensual");
AccionMensualAttribute.Value = TextAccionMensual.Text;
datosNodo.Attributes.Append(AccionMensualAttribute);

XmlAttribute AccionAcumuladaAttribute = doc.CreateAttribute("AccionAcumulada");
AccionAcumuladaAttribute.Value = TextAccionAcumulada.Text;
datosNodo.Attributes.Append(AccionAcumuladaAttribute);

return datosNodo;
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
    <table>
        <tr>
            <td colspan="2" style="width: 200px; height: 40px">
                <b style="font-size: x-large">Datos Financieros</b>
            </td>
        </tr>
        <tr>
            <td colspan="2" style="width: 174px; height: 40px">
                <b>Utilidad Neta/Capital</b>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 44px">
                Mensual:
            </td>
            <td style="width: 204px; height: 44px">
                <asp:TextBox ID="txtNetaMensual" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 44px">
                Acumulado:
            </td>
            <td style="width: 204px; height: 44px">
                <asp:TextBox ID="txtNetaAcumulado" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td colspan="2" style="width: 174px; height: 40px">
                <b>Utilidad Neta/Ventas</b>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 41px">
                Mensual:
            </td>
            <td style="width: 204px; height: 41px">
                <asp:TextBox ID="txtMensual" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 41px">
                Acumulado:
            </td>
            <td style="width: 204px; height: 41px">
                <asp:TextBox ID="txtAcumulado" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 41px">
                Liquidez:
            </td>
            <td style="width: 204px; height: 41px">
                <asp:TextBox ID="txtLiquidez" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td colspan="2" style="width: 174px; height: 40px">
                <b>Acción</b>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 41px">
                Mensual:
            </td>
            <td style="width: 204px; height: 41px">
                <asp:TextBox ID="TextAccionMensual" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td style="width: 101px; height: 41px">
                Acumulada:
            </td>
            <td style="width: 204px; height: 41px">
                <asp:TextBox ID="TextAccionAcumulada" runat="server" Width="201px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td colspan="2" style="width: 101px; height: 41px">
                <asp:Button Text="Guardar" runat="server" ID="btnSave" Width="95px" OnClick="btnSave_Click" />
            </td>
        </tr>
        <tr>
            <td colspan="2" style="width: 101px; height: 41px">
                <asp:Label Text="Guardar" runat="server" ID="lblResult" Width="295px" />
            </td>
        </tr>
    </table>
</div>
</form>
</body>
    </html>

现在,我想在这个表单上显示该信息,我已经制作了这个,正在运行。没有给我任何错误,但没有显示任何内容,只是空白屏幕:

    <body>
<form id="form1" runat="server">
<div>
    <asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="datos" DataFile="Datos/DatosFinancieros.xml" />
    <asp:FormView ID="FormView1" runat="server" DataSourceID="XmlDataSource1">
        <ItemTemplate>
            <hr />
            <asp:Repeater ID="Repeater1" runat="server" DataSource='<%# XPathSelect("datos") %>'>
                <ItemTemplate>
                    Neto Mensual:
                    <%# XPath("NetaMensual") %>
                    <br />
                    Neta Acumulado:
                    <%# XPath("NetaAcumulado") %>
                    <br />
                    <hr />
                </ItemTemplate>
            </asp:Repeater>
        </ItemTemplate>
    </asp:FormView>
</div>
</form>

任何人都知道我做错了什么,所以信息不显示???很抱歉,这篇文章很长,但为了更好地了解我在做什么!

4

1 回答 1

1

查看屏幕的源代码并查看 XML 是否出现。

如果确实出现了,那么问题在于 HTML 是 XML 的一种变体,浏览器将任何带有 XML 样式标签的东西解释为标记而不是信息。

您需要在 <%# %> 标记内对您的 XML 进行 HTML 编码。

<%# Server.HtmlEncode(XPath(xyz)) %>
于 2012-09-13T20:20:41.557 回答