Single Quote in XPATH
Hi,
I am firing following Xpath Query.
String xpath = "/////FEEDPUBNAME[contains(translate(.,'abcdefghijklmnopqrstuvwxyz',"
+ " 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),'"+strPubName.toUpperCase().trim()+"')]";
String xpath1="NLAPUBLISHINGLIST/NLAPUBLICATIONS/*[@NAME='"+ strPubName.trim() +"']/PUBLOOKUP/FEEDPUBNAME";suppose if value of strPubName is Single's
Exception is thrown
how can fire Xpath query when a string having Single Quote in it.
Any suggestion or solutions will be appriciated.
eagrly waiting for a reply
Thanks.
My bet is that you need to escape the quote somehow. Since this is not an Xpath forum, you might want to ask "how" somewhere else.
Similar Messages
-
Single Quote causing problem in XPATH
The workflow was working fine until one of the fields had a single quote in the string and caused the update action to stall.
Using the Execute SQL query module I am updating data in an Oracle table. The query looks like this
UPDATE GSI_FEEDBACK_FORM_HEADERS
SET SITE_STREET = '{$ /process_data/xfaform/object/data/xdp/datasets/data/form1/Details/site_street $}',
SITE_STREET2 = '{$ /process_data/xfaform/object/data/xdp/datasets/data/form1/Details/site_street2 $}'
One of the forms had the street value
"Connah's Quay Deeside". I figured out that the single quote is causing the module to read it as the end of the XPATH, hence causing a "SQL command not ended properly" error.
Any suggestions to oversome this issue.
AdityaNo problem
It also:
Makes your SQL look much neater.
You can type in "test" values for the parameters, so that you can test your SQL statement and see the results.
Howard
http://www.avoka.com -
Xpath with another xpath between single quotes
Hello,
Im using an xpath expression to find a node in a xml variable. In this xpath I need to equal the text part of the resolved node to the value returned from the xpath from another xml variable. The value returned from the second xpath needs to be between single quotes in the first xpath, but it is not working. I already tried this:
/path_to_xml1/root_node/node[text = '/path_to_xml2/root_node/node']
string(/path_to_xml1/root_node/node[text = '/path_to_xml2/root_node/node'])
string(/path_to_xml1/root_node/node[text = 'string(/path_to_xml2/root_node/node')])
thank youWhen you say : "...I need to equal the text part of the resolved node", are you talking about a text attribute of the node or just the value of that node?
If it's just the value of the node then you should just use /path_to_xml1/root_node/node /path_to_xml2/root_node/node
Jasmin -
XML invalid character - a single quote problem
Hi, I am reading in an xml file, then write the file to output. The problem is that the input file has a strange single quote character [ *�* ] - lets call it single quoate A, which is different from [ *'* ] , that is the key next to the [ ; ] key on an English keyboard - lets call it single quate B. And in fact there isnt a key to input single quote A, I guess the appearance of single quote A is due to encoding.
If I open the input xml file in browser, it works ok and displays the single quote A.
Once I read in the xml file into memory, by debugging I can still see that single quote A is corrected encoded;
However once I rewrite the same content to output, the single quote A character is changed, and if i open the file in browser, it says 'invalid character' because single quote A were changed when written to output and cannot be rendered.
Both input and output xml are using UTF-8 encoding. How can I solve this problem please?
The xml file looks:
<?xml version="1.0" encoding="UTF-8" ?>
<content>....1980�s (Peacock and Williams, 1986; Keay, 1984)</content> My code for reading
String _xquery ="//content/text()";
Document _xmlDoc= DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("myxml.xml");
XPath _xpath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList) _xpath.compile(query).evaluate(_xmlDoc, XPathConstants.NODESET);
List<String> res = new ArrayList<String>(nodes.getLength());
for (int i = 0; i < nodes.getLength(); i++) {
res.add(nodes.item(i).getNodeValue());
String valueToOuput=res.toString() //this is the value to be output to xml, it shoud look like "[....1980�s (Peacock and Williams, 1986; Keay, 1984)]"my code for writing xml
Element root=new Element("root");;
Element content= new Element("output-content")
content.setText(valueToOutput);
root.addContent(content);
PrintWriter writer = new PrintWriter(new FileWriter(f));
new XMLOutputter().output(domDocument, writer);
writer.close();Hi, sorry I have fixed the problem... instead of using PrintWriter, I used Fileoutputstream, and it solved the problem. Thanks!
-
How to pass a string variable in a single quote
Hi,
I am trying to pass a single quoted string, 'some string', into a concat expression.
My situation is some thing like
I have an array of states
<copy>
<from>
<ListOfValues xmlns="http://tbone.coi.test/amis">
<!-- State -->
<Value>A</Value>
<Value>B</Value>
<Value>C</Value>
</ListOfValues></from>
<to variable="StateList"/>
</copy>
then I loop through the StateList array to get each state as
<copy>
<from variable="StateList" query="/tns:ListOfValues/tns:Value[bpws:getVariableData('iterator')]"></from>
<to variable="currentState"/>
</copy>
I then build an xpath expression like:
<copy>
<from expression="concat('/nsxml0:GetSummariesResponse/nsxml1:Summaries[nsxml1:State = ',bpws:getVariableData('currentState'), ']')"></from>
<to variable="xpath"/>
</copy>
As the result, my xpath look like:
/nsxml0:GetSummariesResponse/nsxml1:Summaries[nsxml1:State = A]
but I need a state surrounded by single quote as 'A' or xpath query like
/nsxml0:GetSummariesResponse/nsxml1:Summaries[nsxml1:State = 'A']
Any ideas how can I single quote a value of bpws:getVariableData('currentState') in my concat expression
Thanks,
-VHave you tried 'the string contain''s an ''?
-
SSAS SSRS Report Action on Cell Value w/ Embedded Single Quote Not Executing
I have configured an SSAS 2008 R2 cube SSRS ReportAction. I'm having problems when the member value for a cell has an embedded single quote, e.g. abc's. The action displays on the context menu appropriately, but when I click on the action, nothing happens.
For member values that do not have the single quote, the action works as designed. I've added a calculated ember to escape the embedded single quote by adding another single quote, e.g. abc''s, with no luck. Is there a resolution or workaround for this?Hi Mdccuber,
According to your description, you create a reporting action in you cube, and it works fine except the members that have embedded single quote, right? In your scenario, it seems that you pass this value to the report as the parameter.
In SQL Server Analysis Services (SSAS), when pass values to a report, multi-select parameters have to be placed into IN statement and SQL Server Reporting Services (SSRS) will do single-quote wrapping for string values automatically. In this case, the original
value that have embedded single quote will be damaged. So this action not work. You can submit a feedback at
http://connect.microsoft.com/SQLServer/Feedback and hope it is resolved in the next release of service pack or product.
Regards,
Charlie Liao
TechNet Community Support -
How can I will declare the symbol u2018 (Single Quote) in the report
Hi ,
Could you please tell me how can I will declare the symbol u2018 (Single Quote) in the report.
My requirement is that I have concate the data with single quote and after that I have to store the data in to an internal table and I have to download the data in the form text file in the presentation server.
For example :
Let the below data I want to download into the presentation serve in the format of text file by storing in internal table.
Assume all are constants:
1st line : abcu2019add
2nd line : defu2019gef
Thanks in advance.Hi Jyothi,
Thanks for the quick reply .
I can agree with you are point but My requirement is like this I am explaining clearly.
I have declared the internal table like this.
DATA: BEGIN OF OTAB OCCURS 0,
LINE (9024),
END OF OTAB.
So I have to append the each line item into the internal table.
So I am explaining what the data I have to append
Ist line contains
'UNBUNOC:2020308u2019 where 020308 I will get the date from reguh table
2nd line contains:
'DTM+20020510' where the 20020510 will be reference document number from the table reguh.
So I want to declare a constant 'UNBUNOC:2
2nd the date from reguh table
And another constant u2018
So that I can concate all the three and I can put into string and I will append into internal table and I can download the data into the presentation server.
Please let me know if you need any more clarification regarding my requirement.
Thanks in advance. -
SSRS Report Returning Double Quote string from a Single Quote String
Hi, I'm getting weird thing in resultset from SSRS report when executed. When I pass parameter to a report, which passes String that has single quote value to a split function , it returns rows with double quote.
For example following string:
'N gage, Wash 'n Curl,Murray's, Don't-B-Bald
Returns:
''N gage, Wash ''n Curl,Murray''s, Don''t-B-Bald
through SSRS report.
Here is the split function Im using in a report.
CREATE Function [dbo].[fnSplit] (
@List varchar(8000),
@Delimiter char(1)
Returns @Temp1 Table (
ItemId int Identity(1, 1) NOT NULL PRIMARY KEY ,
Item varchar(8000) NULL
As
Begin
Declare @item varchar(4000),
@iPos int
Set @Delimiter = ISNULL(@Delimiter, ';' )
Set @List = RTrim(LTrim(@List))
-- check for final delimiter
If Right( @List, 1 ) <> @Delimiter -- append final delimiter
Select @List = @List + @Delimiter -- get position of first element
Select @iPos = Charindex( @Delimiter, @List, 1 )
While @iPos > 0
Begin
-- get item
Select @item = LTrim( RTrim( Substring( @List, 1, @iPos -1 ) ) )
If @@ERROR <> 0 Break -- remove item form list
Select @List = Substring( @List, @iPos + 1, Len(@List) - @iPos + 1 )
If @@ERROR <> 0 Break -- insert item
Insert @Temp1 Values( @item ) If @@ERROR <> 0 Break
-- get position pf next item
Select @iPos = Charindex( @Delimiter, @List, 1 )
If @@ERROR <> 0 Break
End
Return
End
FYI: I'm getting @List value from a table and passing it as a string to split function.
Any help would be appreciated!
ZKAnother user from TSQL forum posted this code which is returning the same resultset but when I execute both codes in SQL server it works and return single quote as expected.
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8d5c96f5-c498-4f43-b2fb-284b0e83b205/passing-string-which-has-single-quote-rowvalue-to-a-function-returns-double-quoate?forum=transactsql
CREATE FUNCTION dbo.splitter(@string VARCHAR(MAX), @delim CHAR(1))
RETURNS @result TABLE (id INT IDENTITY, value VARCHAR(MAX))
AS
BEGIN
WHILE CHARINDEX(@delim,@string) > 0
BEGIN
INSERT INTO @result (value) VALUES (LEFT(@string,CHARINDEX(@delim,@string)-1))
SET @string = RIGHT(@string,LEN(@string)-CHARINDEX(@delim,@string))
END
INSERT INTO @result (value) VALUES (@string)
RETURN
END
GO
ZK -
Report parameter field value has a single quote. need to escape before pass
Report has a parameter whose value might have a single quote in it. If I pass that value directly into the SQL Command... like
where ... user_name = {?parm_user_name}...
which would translate to
user_name='O'Donnel Honda'
I am getting an error... so would like to convert this parameter value into 'O''Donnel Honda' before passing into the query.
I created a formula called parse_user_name with following:
Replace ({?parm_user_name}, "'", "''")
And used in the query like
where ... user_name = {@parse_user_name}...
I am getting an error like invalid SQL92 character...I think you should use the condition like this
where ... user_name = '{?parm_user_name}'
keep the parameter in single quote at the command level itself.
Now use the same formula like
replace({?Parameter},"'","''")
This works only if the parameter is a single value parameter but not multi value parameter.
Regards,
Raghavendra -
Can we have a Single quote in the tooltip text?
Hi,
We have some tooltips for the presentation columns which contains a single quote.
When I try to view the tooltip from answers the single quote is being replaced by double quotes.
I tried to use all sorts of escape characters for single quote, like "\'" and ''' and "'" but that didn't work.
Is there any way to do this.
Thanks!!
Vasantha.PAs I said in my earlier post, I am looking for the tooltips for the Presentation tables and columns. The tooltips for these were extracted from the RPD using the externalize Strings option and these externalized strings are stored in the database.
So I am escaping the single using a single quote both in rpd and in the database.
Example text I have used both in the rpd and database is something like "Shipment's start time". I tried with "Shipment''s start time", " Shipment'''s start time", but it didn't work.
Thanks!!
Vasantha.P -
Adding a single quote in the flash chart legend
Hi all,
I am using a following code to create a line chart.
SELECT null link
,TO_CHAR(monat, 'MON-YY')
,ROUND(No_of_hits/1000) "No of Clicks(''000)"
FROM
SELECT DISTINCT TRUNC(ref_month,'MONTH') monat
,SUM(no_of_hits) OVER (ORDER BY TRUNC(ref_month,'MONTH') RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) No_of_hits
FROM goodnews_hits
WHERE ref_month BETWEEN :p77_DATE_startline
AND :p77_DATE_endline
ORDER BY monat;
I get the following legend in the top region of the chart
No Of Stories
No of Clicks(''000)
I need the No of Clicks to be displayed as
No of Clicks('000)
i.e.
Only one single quote before 000
Could you please tell me , how this can be achieved?
Thanks,
ArchanaAs I said in my earlier post, I am looking for the tooltips for the Presentation tables and columns. The tooltips for these were extracted from the RPD using the externalize Strings option and these externalized strings are stored in the database.
So I am escaping the single using a single quote both in rpd and in the database.
Example text I have used both in the rpd and database is something like "Shipment's start time". I tried with "Shipment''s start time", " Shipment'''s start time", but it didn't work.
Thanks!!
Vasantha.P -
How to escape a single quote in a find mode view
Hello,
I'm working with JDeveloper 10g.
I've defined a view that is used in "find mode" in a JSP.
When a value with a single quote is inserted in a field of the search form, an exception is thrown:
JBO-27122: SQL error during statement preparation.
ORA-00907: missing right parenthesis.
The problem is that the "single quote" is not being escaped:
WHERE STREET LIKE 'ABAT ESCARRE, DE L'A'
How could I force the view to escape the "single quote"?
ThanksArrest the single quote by calling a javascript method.
This might help you
Re: af:clientListener javascript function call question
http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e12419/tagdoc/af_clientListener.html
Edited by: Srinidhi on Mar 23, 2011 3:46 PM -
Dynamic SQL and Data with Single Quotes in it.
Hi There,
I have a problem in that I am using dynamic SQL and it happens that one of the columns does contain single quotes (') in it as part of the data. This causes the resultant dynamic SQL to get confused as the single quote that is part of the data is taken to mean end of sting, when in fact its part of the data. This leaves out a dangling single quote that was meant to enclose the string. Here is my dynamic SQL and the result of the parsed SQL that I have captured:
****Dynamic SQL*****
l_sql:='select NOTE_TEMPLATE_ID '||
'FROM TMP_NOTE_TEMPLATE_VALUES '||
'where TRIM(LEGACY_NOTE_CODE)='''||trim(fp_note_code)||''' '||
'and TRIM(DISPLAY_VALUE)='''||trim(fp_note_text)||''' ';
execute immediate l_sql INTO l_note_template_id;
Because the column DISPLAY_VALUE contains data with single quotes, the resultant SQL is:
******PARSED SQL************
select NOTE_TEMPLATE_ID
FROM TMP_NOTE_TEMPLATE_VALUES
where TRIM(LEGACY_NOTE_CODE)='INQ' and TRIM(DISPLAY_VALUE)='Cont'd'
And the problem lies with the single quote between teh characters t and d in the data field for DISPLAY_ITEM. How can I handle this?
Many thanks,I have been reliably informed that if one doesn't enclose char/varchar2 data items in quotes, the right indices may not be usedI am into oracle for past 4 years and for the first time i am hearing this.
Your reliable source is just wrong. Bind variables are variables that store your value and which are used in SQL. They are the proper way to use values in your SQL. By default all variables in PL/SQL is bind variable.
When you can do some thing in just straight SQL just do it. Dynamic SQL does not make any sense to me here.
Thanks,
Karthick. -
Html output genreated by the xsl should have a single quote
hi
i am trying to convert the xml into html .
For one particular field i need to invoke a javscript method on
click. a value has to be passed to this javascript method. for
this i need a single quote or a double quote to come in the
output.
<a href ="javascript:loadPage('Student')"/> is what my output
should look like but i ma getting it as
<a href ="javascript:loadPage('Student&apos)"/> which is
invalid.
i am constructing the string like
<xsl:variable name="pageName" select="'Student'"/>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('javascript:loadPage
(',',$pageName,',')')"/>
</xsl:attribute>
Also i tried declaring a variable and using it instead of '
<xsl:varaible name="squote">'</xsl:variable>
how to overcome this problem ?This was a bug in 9.0.1
It's fixed in 9.0.2. For example, using the following slight
modification of your example with 9.0.2D Beta, I get the right
answer:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="pageName" select="'Employee'"/>
<xsl:variable name="apos">'</xsl:variable>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('javascript:loadPage(',
$apos,
$pageName,
$apos,
)"/>
</xsl:attribute>
foo
</a>
</xsl:template>
</xsl:stylesheet>Notice that I've created a variable named apos and use
that in the concat() instead of directly using the character
reference. This makes things clearer, I think, and easier to
look at visually. -
I have a custom function in which I want to parse out any single quotes as they are causing problems further down in our process. Actually what I want the function to do is to find the first single quote, if it exists, then strip the single quote and the rest of the text out. Her is the function I am trying to use:
ifthenelse(
index($InputText , '\'', 0) > 0,
substr( $InputText, 0, index( $InputText , '\'', 0) -1),
$InputText
$InputText is a varchar datatype and contains a sting which may or may not contain an single quote.
How does one look for a single quote in either a function like this or in a replace function?
Thanks,
RyanThe error in the editor is that is not expecting the less than sign, but rather expecting a right parenthasis ) or a comma.
Error MSG:
[Function:CF_TruncateApostrophe]
(Ln 3) : Syntax error : near <>> found <>> expecting <')', ','>
I will try to encase the whole index statement for the test in parenthesis and see what happens.
Ryan
Maybe you are looking for
-
What is the best external Optical Drive for my Macbook?
I was wondering if anyone has purchased an external CD/DVD burner for their Macbook? My internal Super Drive in my Macbook will only play DVDs not CDs. And my discs always get stuck. I am looking for an external drive that will read and write CDs and
-
has anybody used DynamicConfigurationBean for Mail adapter? could you answer my below query? I have file droped by Legacy system and PI has to pick the file and send the content of the file to Mail as body of the mail.. i have used DynamicConfigurat
-
Can't drag image onto stage in new layer, from the library?
For a text book assignment we have to make a new layer and then drag a image from the library panel onto the stage but it won't let me? The new layer doesn't look the same as the rest in the timeline panel too.
-
Getting user details in a form
Hello, I am trying to get a form to display the email address of the Administrator who is entering data into the Form. The form is tied to an Admin Role, so many different users can summon the form up. What XPRESS code would extract the email address
-
Instead of using myThread.stop() I should do somthing like this ... correct? //In my Thread Dispatcher Class private boolean shouldStop = false; private Thread myThread; public static void setStopThread(boolean b){ shouldStop = b; public boolean stop