Hejsan Hej, Kolla att du inte fått ett skräptecken först i XML-filen. Det har hänt mig med VS.NET och xml med samma resultat. Jag öppnade filen i Crimson Editor som avslöjade tecknet. Olof,Hitta sträng i fil
Jag har en web.config som jag skulle vilja läsa ut en nyckel ur från ett dosprogram. Har testat att ladda in den som ett xml dokument men då får jag detta felmeddelande:
"The data at the root level is invalid. Line 1, position 1."
Så nu är min idé att jag ska söka efter en speciell sträng i web.config men kan inte hitta nån bra på lösning på detta.
Finns det någon som kan hjälpa mig tro?
Mvh OlofSv: Hitta sträng i fil
du skall kunna läsa in din config som vanlig xml data. Har gjort det tidigare. Konstigt att du får detta fel.
Finns det någon viss anledning till att läsa in denna? skall du ändra nått? för dit dos app kan ju ha sin enga config fil med sina egna nycklar. Ev kan du skala en Mediator (för mig det hette så) en klass som vet saker om andra. Ex med denna kan du plocka ut data för din web.config och ge infon till ditt dos porgram, dock kan det bli lite knöligt. Du kan även öppna upp en webservice där du läser in datan och i ditt dos app går mot web servicen. och en rad andra kuliga lösningar finns ju...
Mvh JohanSv: Hitta sträng i fil
/AndréSv: Hitta sträng i fil
Du har garanterat fått något skräp i din web.config fil - kontrollera den, alternativt tabort den och lägg till en ny. När du har öppnat den i ett <b>XmlDocument</b> objekt, så kan du använda <b>SelectSingleNode</b> metoden, som tar en <b>XPath</b> fråga som argument, för att välja ut det som du är intresserad av. För mer information om XPath så kan du ta en titt på http://www.w3schools.com/xpath/default.asp
Nedan finner du ett exempel som jag skrev, som visar hur du går till väga. Det öppnar web.config filen, hämtar <b>trace</b> elementet i den och läser ut </b>requestLimit</b> attributet som den skriver ut på websidan.
Hoppas det löser sig!
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.XPath;
namespace WebConfigReader
{
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// Bygg sökvägen till web.config
string configFile =
Path.Combine(Server.MapPath(null), "Web.config");
// Kontrollera att filen finns
if( File.Exists(configFile) )
{
// Öppna filen
XmlDocument configDoc = new XmlDocument();
configDoc.Load(configFile);
// Läs ut requestLimit attributet ur trace elementet
XmlNode traceNode = configDoc.SelectSingleNode("//trace");
if( traceNode != null )
this.Response.Write(traceNode.Attributes["requestLimit"].Value);
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
this.InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}