You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by au...@locus.apache.org on 2000/09/22 19:54:50 UTC
cvs commit: xml-xalan/c/samples/XPathWrapper TestDriver.cpp TestDriver.dsp XPathWrapper.cpp XPathWrapper.hpp
auriemma 00/09/22 10:54:48
Modified: c/samples/XPathWrapper TestDriver.cpp TestDriver.dsp
XPathWrapper.cpp XPathWrapper.hpp
Log:
Resolve issues for AIX and removed depencency on <string>.
Revision Changes Path
1.4 +14 -7 xml-xalan/c/samples/XPathWrapper/TestDriver.cpp
Index: TestDriver.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/samples/XPathWrapper/TestDriver.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestDriver.cpp 2000/08/29 17:03:05 1.3
+++ TestDriver.cpp 2000/09/22 17:54:38 1.4
@@ -2,6 +2,10 @@
+#include <PlatformSupport/DOMStringHelper.hpp>
+
+
+
#include <iostream>
#include <fstream>
@@ -21,25 +25,24 @@
using std::cout;
using std::endl;
using std::ifstream;
- using std::string;
using std::vector;
#endif
if (argc < 4)
{
cerr << "Usage: TestDriver XMLFilePath Context XPathExpression" << endl;
-
return -1;
}
- string theXML;
+ CharVectorType theXML;
ifstream in(argv[1]);
// slow and dirty dump of the xml file into a buffer
char c;
while(in.get(c))
- theXML += c;
+ theXML.push_back(c);
+ theXML.push_back('\0');
///////////////////////////////////////////..
@@ -48,16 +51,20 @@
try
{
+ CharVectorType xmlContext, xmlPath;
+ CopyStringToVector(argv[2], xmlContext);
+ CopyStringToVector(argv[3], xmlPath);
+
// call evaluate, passing in the XML string, the context string and the xpath string
- const vector<string> result = helper.evaluate(theXML, argv[2], argv[3]);
+ const XPathWrapper::CharVectorTypeVectorType result = helper.evaluate(theXML, xmlContext, xmlPath);
// take the resulting string vector and do whatever you want with it:
size_t len = result.size();
- cout<< "the result set has " << len << " strings\n";
+ cout << "the result set has " << len << " strings\n";
for (size_t i=0; i<len; i++)
- cout<< "item " << (i+1) << "= \"" << result[i] << "\"" << endl;
+ cout << "item " << (i+1) << "= \"" << result[i] << "\"" << endl;
}
catch(const XMLException&)
{
1.4 +2 -2 xml-xalan/c/samples/XPathWrapper/TestDriver.dsp
Index: TestDriver.dsp
===================================================================
RCS file: /home/cvs/xml-xalan/c/samples/XPathWrapper/TestDriver.dsp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestDriver.dsp 2000/06/05 18:43:09 1.3
+++ TestDriver.dsp 2000/09/22 17:54:38 1.4
@@ -50,7 +50,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ..\..\Build\Win32\VC6\Release\PlatformSupport.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "TestDriver - Win32 Debug"
@@ -74,7 +74,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ..\..\Build\Win32\VC6\Debug\PlatformSupport.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
1.8 +17 -18 xml-xalan/c/samples/XPathWrapper/XPathWrapper.cpp
Index: XPathWrapper.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/samples/XPathWrapper/XPathWrapper.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XPathWrapper.cpp 2000/08/31 19:33:15 1.7
+++ XPathWrapper.cpp 2000/09/22 17:54:39 1.8
@@ -2,7 +2,6 @@
-#include <string>
#include <vector>
#include <cassert>
#include <iostream>
@@ -50,7 +49,6 @@
#if !defined(XALAN_NO_NAMESPACES)
using std::cerr;
using std::endl;
-using std::string;
using std::vector;
#endif
@@ -63,11 +61,11 @@
{
public:
- vector<string>
+ XPathWrapper::CharVectorTypeVectorType
evaluate(
- const string& xml,
- const string& context,
- const string& expr)
+ const CharVectorType& xml,
+ const CharVectorType& context,
+ const CharVectorType& expr)
{
//initialize Xerces...
try
@@ -81,7 +79,7 @@
throw;
}
- vector<string> theResultList;
+ XPathWrapper::CharVectorTypeVectorType theResultList;
{
// Initialize the XPath subsystem...
@@ -96,8 +94,7 @@
try
{
// parse XML and get root element
- MemBufInputSource inStream((const XMLByte*)xml.c_str(),
- xml.length(), "foo", false);
+ MemBufInputSource inStream((XMLByte*)c_str(xml), xml.size(), "foo", false);
XalanDocument* const doc = theLiaison.parseXMLStream(inStream);
assert(doc != 0);
@@ -125,7 +122,7 @@
// first get the context nodeset
XPath* const contextXPath = theXPathFactory.create();
theXPathProcessor.initXPath(*contextXPath,
- XalanDOMString(context.c_str()),
+ c_str(context),
ElementPrefixResolverProxy(rootElem, theEnvSupport, theSupport),
theEnvSupport);
@@ -165,7 +162,7 @@
// and now get the result of the primary xpath expression
XPath* const xpath = theXPathFactory.create();
theXPathProcessor.initXPath(*xpath,
- XalanDOMString(expr.c_str()),
+ c_str(expr),
ElementPrefixResolverProxy(rootElem, theEnvSupport, theSupport),
theEnvSupport);
@@ -197,7 +194,7 @@
else
str = theSupport.getNodeData(*node);
- theResultList.push_back(DOMStringToStdString(str));
+ theResultList.push_back(TranscodeToLocalCodePage(str));
}
break;
@@ -205,7 +202,7 @@
default:
{
- theResultList.push_back(DOMStringToStdString(xObj->str()));
+ theResultList.push_back(TranscodeToLocalCodePage(xObj->str()));
break;
}
@@ -246,11 +243,13 @@
-vector<string>
+XPathWrapper::CharVectorTypeVectorType
XPathWrapper::evaluate(
- const string& xml,
- const string& context,
- const string& path)
+ const CharVectorType& xml,
+ const CharVectorType& context,
+ const CharVectorType& path)
{
- return pImpl->evaluate(xml,context,path);
+ return pImpl->evaluate(xml, context, path);
}
+
+
1.5 +24 -15 xml-xalan/c/samples/XPathWrapper/XPathWrapper.hpp
Index: XPathWrapper.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/samples/XPathWrapper/XPathWrapper.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XPathWrapper.hpp 2000/08/29 17:03:05 1.4
+++ XPathWrapper.hpp 2000/09/22 17:54:39 1.5
@@ -63,11 +63,24 @@
-#include <string>
+#include <PlatformSupport/DOMStringHelper.hpp>
+
+
+
+#include <XalanDOM/XalanDOMString.hpp>
+
+
+
#include <vector>
+#if defined(XALAN_NEEDS_EXPLICIT_TEMPLATE_INSTANTIATION)
+#include <stl/_vector.c>
+#endif
+
+
+
#if defined(WIN32)
#if defined(_XPathWrapper)
#define XALAN_XPATHWRAPPER_EXPORT XALAN_PLATFORM_EXPORT
@@ -89,6 +102,12 @@
public:
+#if defined(XALAN_NO_NAMESPACES)
+ typedef vector<CharVectorType> CharVectorTypeVectorType;
+#else
+ typedef std::vector<CharVectorType> CharVectorTypeVectorType;
+#endif
+
XPathWrapper();
virtual
@@ -97,20 +116,11 @@
// Given an xml document and an xpath context and expression in the form of (ascii) string objects,
// this function parses the XML document, evaluates the xpath and returns the result, as a list of
// string objects
-
-#if defined(XALAN_NO_NAMESPACES)
- vector<string>
+ CharVectorTypeVectorType
evaluate(
- const string& xml,
- const string& context,
- const string& path);
-#else
- std::vector<std::string>
- evaluate(
- const std::string& xml,
- const std::string& context,
- const std::string& path);
-#endif
+ const CharVectorType& xml,
+ const CharVectorType& context,
+ const CharVectorType& path);
private:
@@ -122,7 +132,6 @@
bool
operator==(const XPathWrapper&) const;
-
XPathWrapperImpl* const pImpl;
};