|
m_chandu wrote: FreeThreadedDOMDocument old version
It has been a while since I used MSXML so this is from old memory. Early versions of MSXML implemented pathing syntax ( I think it was called XSL Path or something ) before XPath was approved. Some Later versions added support for the XPath standard, but also maintained backwards compatibility for the original syntax, and defaulted to the using the old syntax.
If your XPath statement contains any of the new XPath features you have to tell the DOM to use the XPath syntax. I think you have to use some generic like method [ .setProperty(.....) or something ] and pass the correct string values to setup the DOM to use XPath.
led mike
|
|
|
|
|
hai led
thanks for giving the reply but i have placed the property even though am getting error what i mentioned above..
below is the total code what i have..
Dim xslDoc As MSXML2.FreeThreadedDOMDocument60
Set xslDoc = New MSXML2.FreeThreadedDOMDocument60
xslDoc.setProperty "SelectionLanguage", "XPath"
xslDoc.setProperty "SelectionNamespaces", "xmlns:xsl='http://www.w3c.org/1999/XSL/Transform'"
xslDoc.setProperty "AllowXsltScript", True
xslDoc.async = False
xslDoc.validateOnParse = False
xslDoc.loadXML strXML
xslDoc.selectSingleNode(STR_XPATH_PRIORITY_SORTORDER).nodeValue = " "
the last line is giving us error if we have FreeThreadedDOMDocument60..
without 60 its working fine..
thanks
chandu.M
|
|
|
|
|
Hi,
I have a simple xml-structure to represent my bookcase.
lib
+ books
+ serie
+ book (aut: type = IDREFS)
- title
- pages
+ authors
+ author (id: type = ID)
- first_name
- last_name
It contains 2 tables, one of the authors identified with id. And a table with the books with an attribute aut pointing to one or more of the authors.
Now i want to show the series, the booktitle and the author(s). The problems is how to show the author and not just the ID in the aut attribute.
I have used a named template to find the author
<xsl:template name="author_name">
<xsl:param name="idref"/>
<xsl:for-each select="//author[@id=$idref]">
<xsl:value-of select="last_name"/>
<xsl:value-of select="first_name"/>
</xsl:for-each>
</xsl:template>
And I'm using it like this
<xsl:call-template name="author_name">
<xsl:with-param name="idref" select="@aut"/>
</xsl:call-template>
And this works, BUT NOT for books written by 2 or more authors. I have tried tokenize but that function is only available in xls 2.0. And then IE has troubles with it.
Any help on this would be appreciated.
Learn from the mistakes of others, you may not live long enough to make them all yourself.
|
|
|
|
|
I am getting this error in soap response. I am consuming java webservice from .net 2005 C# code.
Please help me !! I pasting error below.
thanks in advance.
<soapenv:Body><soapenv:Fault><faultcode></faultcode><faultstring>com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [1,0]</faultstring><detail /></soapenv:Fault></soapenv:Body>
|
|
|
|
|
The functional requirement is , we hav a table with data in following format..
C1 C2 c3
------------------
A AA1 y
A AAA1 n
B AA1 y
B AAA1 n
C AA1 y
the required output by xslt is
C1 AA1 AAA1
--------------------
A y n
B y y
C y
Can anybody help me out from this issue.
Thanks in advance.
Tarini singh..
Zenta pvt Ltd
|
|
|
|
|
tarun_codeproject wrote: Can anybody help me out from this issue.
Help you with what? You didn't ask a question.
led mike
|
|
|
|
|
Hi
I have written the following asp.net page and creating the xml file through a method everything is fine it is creating the file but i have a problem. May be you can help for that. it is about the xml file output when it created it showing TABLE and TABLE1 as node in xml how i can change it to meaningful name. My Code is as follows. XML file is at the bottom of the code
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Xml;
using System.IO;
public partial class _Default : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){
GetEmployees("London");
}
public static void GetEmployees(string City){
//String sConnection = "server=HTCWEBDEMO;database=hometrust;user id=ht_admin;password=htc_tr!st";
String sConnection = "server=ZAFAR-PC\\SQLEXPRESS;Integrated Security=SSPI;database=northwind";
SqlConnection mySqlConnection = new SqlConnection(sConnection);
mySqlConnection.Open();
// Get the same data through the provider.
//string mySQLStatement = "SELECT Title,FirstName,LastName,PhoneNumber,Faxnumber, email from contactlist where TeamName='" + TeamName +"'; select FirstName, LastName from contactlist where TeamMorty ='True' and teamname='" + TeamName + "';";
string mySQLStatement = "SELECT FirstName,LastName,Title,City from employees where city= '" + City + "';select FirstName, LastName from employees where city='" + City + "';";
//SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(mySQLStatement, sConnection);
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(mySQLStatement, sConnection);
DataSet myDataSet2 = new DataSet();
myDataSet2.DataSetName = "Contacts";
mySqlDataAdapter.Fill(myDataSet2);
// Write data to files: data1.xml and data2.xml for comparison.
myDataSet2.WriteXml("c:/temp/ContactList.xml");
mySqlConnection.Close();
}
}
XML FILE OUTPUT
<?xml version="1.0" standalone="yes" ?>
- <Contacts>
- <Table>
<FirstName>Steven</FirstName>
<LastName>Buchanan</LastName>
<Title>Sales Manager</Title>
<City>London</City>
</Table>
- <Table>
<FirstName>Michael</FirstName>
<LastName>Suyama</LastName>
<Title>Sales Representative</Title>
<City>London</City>
</Table>
- <Table>
<FirstName>Robert</FirstName>
<LastName>King</LastName>
<Title>Sales Representative</Title>
<City>London</City>
</Table>
- <Table>
<FirstName>Anne</FirstName>
<LastName>Dodsworth</LastName>
<Title>Sales Representative</Title>
<City>London</City>
</Table>
- <Table1>
<FirstName>Steven</FirstName>
<LastName>Buchanan</LastName>
</Table1>
- <Table1>
<FirstName>Michael</FirstName>
<LastName>Suyama</LastName>
</Table1>
- <Table1>
<FirstName>Robert</FirstName>
<LastName>King</LastName>
</Table1>
- <Table1>
<FirstName>Anne</FirstName>
<LastName>Dodsworth</LastName>
</Table1>
</Contacts>
|
|
|
|
|
hello everyone..
how can i parse an xml documents and/or how can i convert a doc file to xml file. is this possible??
hope anyone can help me about this...
thanks in advance..
jyn
|
|
|
|
|
jhyn wrote: how can i parse an xml documents
go to www.w3schools.com
they have a tutorial on XML.
jhyn wrote: how can i convert a doc file to xml file. is this possible??
Newer versions of MS Word support saving a document as XML. The latest versions now default to XML. See the thread below about OOXML and WordprocessingML .
led mike
|
|
|
|
|
thank you for your reply
jyn
|
|
|
|
|
Hello.
I work on docx parser. All i need is to extract text and some layout info (such as font name, font size, alignment and so on).
I confront a problem while parsing document's main part (document.xml).
The problem is word division. For some reason Word 2007 sometimes divide words in to different runs.
Example:
"Identifier information about the certificate authority that issued the certificate."
In document.xml it looks like
<w: p w:rsidR="00000000" w:rsidRDefault="00B91456">
<w:pPr>
<w:pStyle w:val="BulletedList" />
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="72" />
</w:numPr>
</w:pPr>
<w:r>
<w:t>Iden</w:t>
</w:r>
<w:r>
<w:t>tifier information about the certificate authority that issued the certificate.</w:t>
</w:r>
</w: p>
The other example:
"The server certificate name specified should match the fully qualified domain name."
In document.xml it looks like
<w: p w:rsidR="00000000" w:rsidRDefault="00B91456">
<w:pPr>
<w:pStyle w:val="Listalerttext" />
<w:framePr w:wrap="notBeside" />
</w:pPr>
<w:r>
<w:t>The server c</w:t>
</w:r>
<w:r>
<w:t>ertificate name specified should match the fully qualified domain name.</w:t>
</w:r>
</w: p>
What is the reason behind this?
And, what is more important, how can I handle this?
Such situation occurs many times and I completely don't no what to do.
Word 2007 somehow handles it, can anyone suggest how?
thanks..
|
|
|
|
|
Member 4083157 wrote: What is the reason behind this?
And, what is more important, how can I handle this?
I don't know, but if I needed to know I might start by reading the documentation[^] rather than typing messages into internet forums.
led mike
|
|
|
|
|
Well.. it's a very good advice, but the problem is, that I already read the WordprocessingML part 5 times and I didn't find anything regarding my problem..
That's why I'm asking here..
|
|
|
|
|
Member 4083157 wrote: I already read the WordprocessingML part 5 times
You should state in your posts what documentation you read and how/why it seems not to provide your solution. Otherwise someone might waste their time providing you with a link because most people here on code project never read any documentation.
Also if you read any documentation it is confusing that you do not understand that nature of the run element . Can you please link to and explain why, the documentation you cited does not (for you) indicate the nature of the run element .
led mike
|
|
|
|
|
Ok, sorry, i'll post documentation in future =)
OOXML documentation, part 4 says that the run defines a region of text with a common set of properties, represented by the r element. An r element allows the producer to specify a single set of formatting properties, applying the same information to all the contents of the run.
As I understood, it means, that some region of the text (from the same paragraph) whith the common set of properties can be placed in one run, am i not correct?
The question is why there so many runs with the same properties in one paragraph? In most documents I viewed, there where lots of runs within the paragraph and all of them had the same properties.
In my case, even word was divided.
I came to the conclusion, that after some change of properties (and then back to the original), text can be divided in different runs, but how should i handle this?
What is really confuses me, is xml:space="preserve" element, OOXML specification refers to
http://www.w3.org/XML/1998/namespace, which says
The value "default" signals that applications' default white-space processing modes are acceptable for this element;
the value "preserve" indicates the intent that applications preserve all the white space.
This declared intent is considered to apply to all elements within the content of the element where it is specified,
unless overridden with another instance of the xml:space attribute.
But I really couldn't find any logic of how it works in OOXML..
|
|
|
|
|
The problem was solved.
All, what was said about xml:space="preserve" above is correct.
The problem was in my viewer, which incorret displaid documents.
|
|
|
|
|
Member 4083157 wrote: The problem was in my viewer, which incorret displaid documents.
I am glad you resolved the issue, and thanks for posting back your findings. Which viewer were you using?
led mike
|
|
|
|
|
Hi all
In my projecr we need to handle the singleclick and doubleclick events ;
when i use single click one action should perform
when i use doubleclick another action should perform
pleae help me
#sanroop#
|
|
|
|
|
And how do you do propose doing it in XML? Wrong question, wrong forum. Which is why you have had no answers.
Bob
Ashfield Consultants Ltd
|
|
|
|
|
Hi,
I am using an XSL file to format a document for display on my website. A content block has a title, and contains HTML content. The references section always appears at the bottom of the rendered document (regardless of its location within the XML file).
<?xml version="1.0"?>
<mydoc>
<content title="Introduction">
...
</content>
<references>
...
</references>
</mydoc>
In the XSL I want to create a contents for the document. I have managed to get the content sections listed in the contents. But I find myself duplicating a large chunk of XSL just to add the references section to the contents.
Is there a way to do something along the lines of the following?
<xsl:variable name="contents-listing">
concatenate
?? Get list of content nodes "/mydoc/content" ??
with
<content title="References">
<references>
...
</references>
</content>
</xsl:variable>
so that I can:
<xsl:for-each select="$contents_listing">
<!-- Clicking an item goes to the corresponding named anchor -->
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('#ref', position())" />
</xsl:attribute>
<xsl:value-of select="@title" />
</a>
</xsl:for-each>
and also:
<xsl:for-each select="$contents-listing">
<!-- Named anchor indicates where to click goes to -->
<a>
<xsl:attribute name="name">
<xsl:value-of select="concat('ref', position())" />
</xsl:attribute>
<xsl:apply-templates />
</a>
</xsl:for-each>
Many thanks,
Lea Hayes
|
|
|
|
|
It's probably easy in XSLT 2, but if you're using XSLT 1 like most of us who are relying on Microsoft tools, avoiding duplicated xsl code ist hard.
Using a workaround pattern I've sometimes applied in such cases it would look like this:
<mydoc>
<content title="Introduction">
<xsl:call-template name="EvaluateContent">
<xsl:with-param name="Context">Contents</xsl:with-param>
</xsl:call-template>
</content>
<references>
<xsl:call-template name="EvaluateContent">
<xsl:with-param name="Context">References</xsl:with-param>
</xsl:call-template>
</references>
</mydoc>
<xsl:template name="EvaluateContent">
<xsl:param name="Context" />
<xsl:for-each select="/mydoc/content">
<xsl:choose>
<xsl:when test="$Context = 'Contents'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('#ref', position())" />
</xsl:attribute>
<xsl:value-of select="@title" />
</a>
</xsl:when>
<xsl:when test="$Context = 'References'">
<a>
<xsl:attribute name="name">
<xsl:value-of select="concat('ref', position())" />
</xsl:attribute>
</a>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
This is not nice, and can be further refined, but the only way I know to avoid duplicating the logic contained in the for-each statement.
I don't have the patience right now to adjust the tabs and spaces which don't look right in the preview.
And please be aware that I just copied and pasted it from some old stylesheets of mine and your fragments and have not tested it. There may be syntax errors, but I'm sure you get the gist.
And if any one points out a better pattern, I'll add my thanks to yours.
|
|
|
|
|
Hi,
Thanks for your advice! This has helped me to solve the problem!
Best regards,
Lea Hayes
|
|
|
|
|
Hi,
I'm trying to validate an Xml document using an XmlReader. Here is my code:
private void Validate(TextReader source, string xsd)
{
XmlReaderSettings settings = new XmlReaderSettings();
XmlUrlResolver resolver = new XmlUrlResolver();
settings.ProhibitDtd = false;
resolver.Credentials = CredentialCache.DefaultCredentials;
settings.XmlResolver = resolver;
settings.ValidationFlags = XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.Schemas.XmlResolver = resolver;
settings.Schemas.Add(null, xsd);
settings.Schemas.Compile();
\\settings.Schemas.Add(null, http://www.w3.org/2001/xml.xsd);
settings.ValidationType = ValidationType.Schema;
settings.ValidationEventHandler += ValidationHandler;
XmlReader reader = XmlReader.Create(source, settings);
while (reader.Read())
{
}
}
The xsd of the xml document I want to validate contains an xs:import that points to local xsd (the schemaLocation is, as example "./dc.xsd"). This xsd imports serveral other xsd, one of which is the following:
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/03/xml.xsd">
</xs:import>
When settings.Schemas.Add(null,xsd) is executed, all nested LOCAL xsd are correctly resolved by the XmlUrlResolver I created. If i inspect during debug my XmlReaderSetting instance i can see tha all the required xsd are correctly loaded, EXCEPT http://www.w3.org/2001/03/xml.xsd. Then settings.Schemas.Compile() is executed, an exception is raised telling me that the attribute xml:lang is not defined (it's defined in the missing xsd).
This exception is not raised, and validaion is performed correctly, if i manually add the namespace (see the commented line of my code), or if i change the scema location in the xsd file to point to a local copy of xml.xsd (schemaLocation="./xml.xsd").
I would like to know how can I make this work, because i don't want to add manually anything related to this specific scenario (i.e. i would like to reuse the code). In other words, why this remote location is not resolved?
|
|
|
|
|
Hi guys,
Usually I use XSL to transform XML at the server-side with ASP.NET. I have recently found out that it is possible to specify a stylesheet at the top of an XML file. The web browser then uses the XSL document to render the XML file.
I came across several websites which say that there is lack of browser support, but they were quite old.
I have tested a simple scenario in IE7, IE8 BETA, Chrome, FF3, and Safari and it seems to work wonders. So I didn't know whether there were any more subtle issues, or compatibility problems.
Are there any issues with this approach? Ideally I wanted to have the client browser do the transforms to ease the load at the server-side.
Many thanks,
Lea Hayes
|
|
|
|
|
lhayes00 wrote: So I didn't know whether there were any more subtle issues, or compatibility problems.
There certainly can be, I imagine. This is awkward since I detest assumptions, however given the history of browser compatibility it's likely a safe one.
lhayes00 wrote: Are there any issues with this approach?
Obviously, the more basic your XML-XSLT is the less likely any problems will surface. Conversely.... well I think you get the idea, yes?
led mike
|
|
|
|
|