2012-09-13 79 views
0

我只是用XML開始,我已經當用戶增加了一些信息,並保存爲XML形式,這是代碼做到這一點,它做工精細:顯示XML使用XPath

 <%@ 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> 

任何人有一個想法,我做錯了什麼,因此不顯示的信息???很抱歉,這篇長文章是爲了讓我更好地瞭解我在做什麼!

+0

btnSave定義在哪裏 - 我看到事件處理程序但沒有標記它? – bUKaneer

+0

從底部到頂部第二個! – Ivelisse

回答

1

查看屏幕的源代碼,看看是否出現XML。

如果確實出現,那麼問題是HTML是XML的一種變體,瀏覽器將任何XML風格的標記解釋爲標記而不是信息。

您需要在<%#%>標籤內對XML進行HTML編碼。

<%# Server.HtmlEncode(XPath(xyz)) %> 
+0

沒有出現在源代碼 – Ivelisse

+0

,我把這個?在第一個代碼我粘貼或直接進入XML文件? – Ivelisse

+0

我注意到你爲你的Datos目錄使用了一個相對路徑。您的新頁面可能無法找到它嗎? –