|
Do you have any sample how I can tell the MSXML DOM parser how to valid my XML file?
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
Daniel S. wrote:
What I mean is the current line of a xml node / element in the xml file, like the get_line() function of the IXMLDOMParseError return.
Do not confuse the parser error messages that help identify where an error occurs by referencing the line in the file that contains the xml file with how the DOM is structured. All ascii data (non attribute values, comments, processing instructions, etc) is text nodes in the the DOM (line feeds etc. inlcuded)
To get the value of an attribute node:
hr = pIXMLDOMElement->getAttribute(bstrAttributeName, &varValue);
see "IXMLDOMAttribute" in the MSXML 4 help file for the above code sample.
YOu need to get the root node and then work your way down the child nodes handling them as appropriate.
"I will find a new sig someday."
|
|
|
|
|
I'm trying to chop the sig digits of numbers. The numbers are accessed at certain levels down the data structure, e.g. /OverallData/Year/Area/../../Value. It causes error if I use format-number(/OverallData/../../../.., ###.##), how do you do it? Also the number can be an attribute of a node. It's a pretty lazy question, but I'm in a hurry to finish off a task, thanks in advance.
|
|
|
|
|
I never tried it with a full XPath but I think you need to add apostrophs around the format string, e.g.:
<xsl:value-of select="format-number(<XPath>,'###.##&apos)" />
Hope this helps,
Bjørn.
|
|
|
|
|
I try to save my data in my pocket pc application in xml with the MSXML DOM parser. I looked on some source codes and found out that are are many different classes (interfaces) like "IXMLDOMDocumentPtr" and "IXMLDOMDocument" ... what's the different between this classes (interfaces)?
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
They basicly the same. The COM interfaces without the trailing Ptr are the raw interfaces, while the ones with the ptr are smart pointers which free the COM object if the interfaces isnt referenced anymore.
|
|
|
|
|
IXMLDOMDocument is a COM interface. IXMLDOMDocument* is an interface pointer on a particular instance of a DOMDocument COM object. IXMLDOMDocumentPtr is a typedef for a _com_ptr_t that manages a IXMLDOMDocument* .
--Mike--
"Adventure. Excitement. A Jedi craves not these things."
-- Silent Bob
1ClickPicGrabber - Grab & organize pictures from your favorite web pages, with 1 click!
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
Thanks!
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
I have a question about the MSXML parser ...
I want to save a CString in an XML file with the MSXML parser ...
So when the MSXML parser writes the string to the file does it check the string and convert some characters like "<, >, &, ..." to someone what is allowed for XML (< > ...) ???
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
You could write it to a CDATA section to create a node that accepts any kind of char, so you don't need to convert any char.
It's as easy as:
xmlDoc->createCDATASection("This is where the string goes");
I see dumb people
|
|
|
|
|
And what when I want to write the string to a attribut, like <ITEM description="Here is the string ... < > ..."> ?
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
The MSXML DOM does the conversion for you & to & etc so you need not worry about it. However when you get a value out of the DOM it will not appear converted ie you will still retrieve &, the converted versions are there when the document is written to file or the XML retrieved with getXML etc
|
|
|
|
|
Thanks!
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
Hi Gurus,
I have a greate trouble while updating the value of text node. I have a
pointer to the node from existing XML document:
----------------------
IXMLDOMNodePtr pNode;
TCHAR szTmp[100];
VARIANT varTmp;
_stprintf(szTmp,"%d",newid);
varTmp.vt=VT_BSTR; varTmp.bstrVal=_bstr_t(szTmp);
hr=pNode->put_nodeTypedValue(varTmp); // hr returns E_FAIL under IE 5.x
----------------------
This works on systems with IE 6.0 installed.
This doesn't work on systems with IE 5.x installed.
Please help me! How to update the node on systems with IE 5.x installed ?
I'm a XML novice so any ideas appreciated.
Yours sincerely,
Alex Bash
|
|
|
|
|
Install MSXML version 3. It's available from the Microsoft site. As a bonus, it supports proper XSLT, whereas the standard did not exist when IE 5.x came out, so they had to make some guesses.....
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Correction: Install MSXML version 4.
Without installing and still running on those "IE5.x systems", I suggest assigning the value to nodeValue (instead of nodeTypedValue), and validate when parsing.
Where does your element get the type info from? Schemas, or DTD? What is the node's dataType value? I would assume both IE5.x and IE6.0 have a different opinion about the node's data type...
Bernd
|
|
|
|
|
While i using an interface of DOM (IXMLDOMNode *) as an parameter of an interface like that :
<br />
[helpstring("method Load")] HRESULT Load([in]IXMLDOMNode * piXMLNode);<br />
there is an midl error :
midl\oleaut32.dll : error MIDL2020 : error generating type library : AddImplType failed : IXMLDOMDocument
How it caused and how to handle it?
thank.
Scratch
|
|
|
|
|
You can only pass a limited number of parameters on a COM interface, and the only way to pass COM objects is as an IUnkown * ( and maybe IDispatch *, I forget ).
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Ok,that's it ,thanks.
Scratch
|
|
|
|
|
Christian Graus wrote:
You can only pass a limited number of parameters on a COM interface, and the only way to pass COM objects is as an IUnkown * ( and maybe IDispatch *, I forget ).
Actually, you can pass anything as long as the midl-compiler knows about it. I.e. anything declared within the same idl file or imported from another idl-file.
--
This space for rent.
|
|
|
|
|
If you are defining a custom interface or dual interfaces, gorget what Christian said to you: you CAN do it. The only problem will appear when you use a [in, out] parameter, and then, the only problem will be that scripting clients won't be able to call your method (you'll get a "type mismatch" from VBScript)
You need to put a importlib in your IDL file, under the library section:
For importing ADO, you could do this:
importlib("c:\program files\common files\system\ado\msado26.tlb");
change the path to the MSXML parser type library on your development machine;
PS:
As much as I hate VB, it can be a great tool for protoryping COM interfaces and quickly writing a IDL. When you don't know how to define a COM interface, create a COM DLL in VB with the desired interface and look the IDL on OLEVIEW
I see dumb people
|
|
|
|
|
Another question ...
When the midl process my .idl file ,it arbitrarily import the default msxml sdk and use the old version objects.
if use one of these directors
#include "C:\Program Files\MSXML 4.0\inc\msxml2.h"
#include "C:\Program Files\MSXML 4.0\inc\msxml2.idl"
#import "C:\winnt\system32\msxml4.dll" no_namespace
Certain Interfaces are redefine .
My wonder how to got rid of the midl's default msxml library and use my own sdk library?
Scratch
|
|
|
|
|
How to use xml with data is xml another(same include file in C language)
Ngo Hoai Phuong
|
|
|
|
|
If you're asking how to change the format of XML, the answer is XSL, you can build one XML document from another easily that way.
If that's not what you're asking, please reword it, because I don't understand.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
hello
i want to know how xml handles image,
here is a scenario
let say i have a word document(having an image inserted in it) and i want to change this document to xml, now how xml would save or handle this image, the whole image would b embeded or just a path of it or ?
Asim
|
|
|
|