|
You don't read lines in XML, you move from element to element, and attribute to attribute.
Read the class documentation for the XmlTextReader in the .NET Framework SDK. There are plenty of examples there as well. It is very easy, but you don't treat XML as a plain text file, i.e. you don't read lines.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
ok.. maybe i'll find an easier one..
thanx for everythin' bro..
MaXx
|
|
|
|
|
There is no easier way, man! Seriously, read the documentation for classes in the System.Xml namespace in the .NET Framework SDK. XML is easy to work with, one reason it's so popular. There's lots of examples in that documentation, like for the XmlTextReader that you'll probably want.
There's two ways of reading XML: parsing the DOM or parsing the document itself (SAX; basically). You could load an XML document completely into memory using the XmlDocument and use XPath (via SelectNodes or an XPathNavigator , which is pretty fast) to get what you need. This is good for smaller documents.
For larger documents you don't want to load the whole thing into memory, so you use SAX, which is an event-driven way to parse the document. This isn't exactly what using an XmlTextReader is, but it is a forward-only way of reading XML documents. While it isn't event driven, it is operation driven (basically the converse of SAX).
So, if you're document is small and you want to extract, for example, the language that is the default language, do something like this:
XML Document-----------------------------------------------------------
<languages>
<language default="true">
<name>en-US</name>
<englishName>English (United States)</englishName>
</language>
<language>
<name>de-DE</name>
<englishName>German (Germany)</englishName>
</language>
</languages>
C# Snippet-------------------------------------------------------------------
XmlDocument doc = new XmlDocument();
doc.Load("languages.xml");
XmlNode node = doc.DocumentElement.SelectSingleNode(
"language[@default = 'true']/name");
if (node != null)
return CultureInfo(node.Value);
else return null;
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I think I'll use the XmlTextreader. I can navigate throught the nodes properly with the function I have (given up there^) but do I have to use a level variable to go to each attribute and next, Isn't there an attribute reader?? which can go without bieng followed? (by level)
MaXx
|
|
|
|
|
See the XmlTextReader.MoveToNextAttribute , which should stick out like a sore thumb if you read the class documentation for XmlTextReader . There's simply no reason not to read the class documentation, especially for those classes you use in your code.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
of course I read the documentation, I also did the .. readstring.. thing looking at the documentation..
Believe! Every thing has a purpose
|
|
|
|
|
watvh this movie[^]
watch the reading xml files one, it shows how to read attributes. it is in vb, but its in simple code, so it should be easy to convert.
/\ |_ E X E GG
|
|
|
|
|
Thanx for the link eggie, but I cannot cache the win media 9 videos, I have a pretty slow Internet speed, & I can't connect each time I have to view them.
But anyways... that reading Xml files video was good. thanx
MaXx
|
|
|
|
|
Hi,
I want to do some file transfer using FTP. I couldn't find any FTP Class in C#. Is C# is having a class for supporting ftp.
Regards,
Satya
|
|
|
|
|
Hi,
I'd like to have an Assembly running on MachineA which can be accessed (it's classes instanciated) from MachineB. The point is, I'd like to create a Database layer which can be accessed from various client machines and from the webserver. Therefore my plan for such a distributet environment.
What I need is some reading, keywords, starting points. Lot's of thanks in advance.
Matthias
If eell I ,nust draw to your atenttion to het fakt that I can splel perfrectly well - i;ts my typeying that sukcs.
(Lounge/David Wulff)
www.emvoid.de
|
|
|
|
|
You could set up the Runtime Security Policy for the assemblies you want to share. You'll find that in Administrator Tool --> .NET Configuration 1.1
You can then determine what is best for your needs.
If the assemblies have to be used across the internet they you should maybe consider WebServices to expose the required functionality.
Does this help?
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
hi i want to Hook certain msgs
WM_SIZING,WM_MOVING to certain window ho i can do this and there another thing iwant to hook WM_CREATE to all apps how this also can be plz if any one knows answers me
thanx
|
|
|
|
|
|
|
i have a problem in the remote method of the object.
the problem is that when i call a remote method and inside this remote method i am creating a new window from and use the form.Show() method it is hanged and the form doesn't show up.
Any Solution to the problem.
Plz Help Urgent
|
|
|
|
|
The problem is that your remote method isn't executed by the UI thread of your application.
As the Show method has to be run in UI thread, you'll need to invoke it.
www.troschuetz.de
|
|
|
|
|
What Stefan is saying is that you need to use the Invoke method on the parent control in order to call Form.Show . See the method documentation for Invoke in the .NET Framework SDK for more information.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I'm using QuartzTypeLib to view vidoe files in my application
The video class is derived from a Panel class
as
public class MyVideo : System.Windows.Forms.Panel
where the video window is a
private IVideoWindow m_objVideoWindow = null;
MyVideo is then an Item in another Panel class
public class MyPanel : System.Windows.Forms.Panel
that is an Item on my Main class
My problem is that I want a MouseEvent attacht to MyVidoe Item, so when you click on the video while it is in full-screen it will go back to it org. size.
How do I do this?
I've tryed in my MyPanel class
public void AddVideoFromFile(MyVideoLib.MyVideo myVideo)
{
myVideo.BackColor = Color.Blue;
myVideo.Parent = this;
myVideo.MouseDown += new System.Windows.Forms.MouseEventHandler(this.video_MouseDown);
this.Controls.Add(myVideo);
this.PerformLayout();
}
public void video_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
currentVideo = (MyVideoLib.MyVideo)sender;
if(currentVideo.bFullScreen)
{
......
}
}
This don't work, it dosen't enter the video_MouseDown(..) when I click.
Thanks
Thomas
|
|
|
|
|
Because the video window has it's own message queue that is not seen and, therefore, not handled by the .NET Framework SDK.
In order to "see" the messages, you have to use the put_MessageDrain method or set the MessageDrain property (depending on how the typelib importer defined it) to your Handle property, which is your HWND , or a handle to a window. This will route all messages to your window class.
Because the Panel is a container control, it will not check the target HWND for a message. According to the documentation for the IVideoWindow::put_MessageDrain method, it uses the standard Windows messages such as WM_LBUTTONDOWN , so the Panel should fire the MouseDown event, as well as other events fired because of Windows messages.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
in C++ I can put all my #define statements in a header file and just include that to make it available to whoever needs it. Is there a good way to have #define's in one place and use these in other files in the same project?
|
|
|
|
|
There is no global variable in C#. You can use static variable instead.
Mazy
"One who dives deep gets the pearls,the burning desire for realization brings the goal nearer." - Babuji
|
|
|
|
|
If you mean #DEFINE conditional constants to help tell the compiler which code to build for specific builds then you need to set that up in the project build settings.
To do that, go Project-->Properties... then select the "Configuration Properties" folder and the "Build" item. You'll see on the right side of the dialog at the top "Conditional Compilation Constants", add your constants in there while remembering to change the Configuration dropdown to the appropriate build type.
Does this help?
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
We have a server we need to send text to and receive a response from (much like that for sending creditcard details and receiving a response).
No Protocol has been specified yet, but we know that it will be using SSL.
We have written a test harness that uses sockets to connect via TCP/IP.
I have been given the task of writing some more dummy apps to simulate how they might ask us to talk to their machine.
Has anyone found any articles that are relevant to my situation?
If I send using HTTP can I use HTTPWebRequest and HTTPWebResponse, or would creating an HTTPHandler be a better idea? Do I need to use the ServicePointManager with SSL?
Any help would be a life saver.
Regards,
Rik
|
|
|
|
|
If you use the HttpWebRequest and HttpWebResponse classes, the SSL handshaking is done for you so everything is transparent. A ServicePoint is just a way to manage connections, probably not something you need in a simple request/response scenario.
Here's another idea you should consider, though: XML Web Services. Not only does it take care of SSL automatically for you (the client proxy actually uses the HttpWebRequest and HttpWebResponse classes internally) but it also takes care of the protocol by which your client and server communicate. All you need to do is extend WebService (the easiest way is to either add a new web service class to your existing ASP.NET web application, or create a new ASP.NET web application that, if nothing else, simply hosts the Web Service) and add methods to it. Any methods to be exposed to clients should be public and should be attributed with the WebMethodAttribute .
XML Web Services are an industry standard and there are libraries for every major language available.
If you want to tie security, routing, encryption, etc. into this, take a look at the Microsoft Web Service Enhancements (WSE) 2.0 at http://msdn.microsoft.com/webservices/building/wse/[^]. This also uses industry standards like WS-Addressing, WS-Encryption, and many more defined by a consortium of industry leaders (including Microsoft, IBM, and others) and standardized by the W3C[^]. It can cetain aliviate a lot of problems with having to define a protocol and can handle a lot of complex data without you have to do a lot of work.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanx for all the help. You've given me lots of ideas.
I'm now reading up on them.
Thanx again.
Regards,
Rik
|
|
|
|