Remove spaces out of XML element

Hi,
I have a mapping where i map a flatfile to a xml.
The incoming element can take a max of  27characters, but most of the time we only get 13 characters. So it has some leading spaces in the xml element, how can i remove those spaces?
The outcome now looks like:
<ns0:GTIN>    4260004133753</ns0:GTIN>
But it should be:
<ns0:GTIN>4260004133753</ns0:GTIN>

Hi Ronald,
For removing leading spaces (as seen in your example) you would use
String Left Trim Functoid
Maheshkumar S Tiwari|User Page|Blog|BizTalk
Server : How Map Works on Port Level

Similar Messages

  • Remove spaces when generating xml from data mapped on object types

    My problem is kind of complex so I'll try to reduce it to a more manageable example:
    drop type msm force;
    drop type list_msm force;
    create type msm as object(
         nume char(20)
    create type list_msm as table of msm;
    select xmlserialize (document xmlelement("values",
         cast(multiset(
              select trim(p.den) from produse p) as list_msm
         ) as clob indent size=2
         ) as "xml"
         from dual;
    This is where it gets tricky.
    p.den is a field that contains spaces. I use trim(p.den) to remove them but because I cast this to list_msm, the values are then again mapped into msm objects, which have the "nume" field of char(20). So.. when generating the XML, the output still contains spaces.
    This is an excerpt of the result:
    <values>
    <LIST_MSM>
    <MSM>
    <NUME>Prod.1 </NUME>
    </MSM>
    <MSM>
    <NUME>Prod.2 </NUME>
    </MSM>
    <MSM>
    <NUME>Prod.3 </NUME>
    </MSM>
    <Later.. I see that the forum removes the extra spaces but I ensure you that after eg. "Prod.1" there are a lot of spaces, as the original field from the "produse" table is defined as char(20))
    So.. Is there a way to generate the XML without those extra spaces? Basically, I want to be able to trim them before I send them to the xml serializer, but the problem is that i have no control over the whole casting thing ( oracle magic happening that automatically creates all the xmlelements needed, etc.)
    Somehow, when the xml engine steps over the collection and accesses the fields, somehow, i need a trim there. Maybe some kind of accesor for the fields in the type can be declared so that the xml engine uses it instead of the field itself directly. The accesor would then return trim(field). Sorry for this mumbo jumbo gibberish but I want to be as clear as possible.
    Edited by: user9229988 on May 10, 2012 9:24 AM
    Edited by: user9229988 on May 10, 2012 9:25 AM
    Edited by: user9229988 on May 10, 2012 9:38 AM

    Hi.
    Check this:
    drop type msm force;
    drop type list_msm force;
    create type msm as object(
    nume VARchar2(20)     --VARCHAR2 NOT CHAR
    create type list_msm as table of msm;
    create table produse
    den char(20)
    INSERT INTO produse VALUES('Prod.1');
    INSERT INTO produse VALUES('Prod.2');
    INSERT INTO produse VALUES('Prod.3');
    COMMIT;
    select xmlserialize (document xmlelement("values",
    cast(multiset(
    select trim(p.den) from produse p) as list_msm
    ) as clob indent size=2
    ) as "xml"
    from dual;
    <values>
      <LIST_MSM>
        <MSM>
          <NUME>Prod.1</NUME>
        </MSM>
        <MSM>
          <NUME>Prod.2</NUME>
        </MSM>
        <MSM>
          <NUME>Prod.3</NUME>
        </MSM>
      </LIST_MSM>
    </values>Hope this helps.

  • Remove prefix in an XML element

    Hi,
    I have an element with the prefix:
    <tr:ElementName>
    </tr:ElementName>
    Could someone please tell me how can I remove the prefix "tr"?
    If I use element.setPrefix(" "); I will get an error message:
    org.w3c.dom.DOMException: DOM002 Illegal character
    Thanks

    You can't "remove the prefix" because that refers to the namespace that is an integral part of the element. Removing the prefix would be like changing the element name. You would have to create a new element with the same element name but no namespace, and copy all the children from the old element to the new one.

  • How to Remove Blank spaces in the text elements for a smartform

    Hi All,
    Can any one please help me out to remove the blank spaces in the text elements.
    We are printing Labels using the Zebra Printer and we have rotated the windows to 90 degrees.
    We are able to see out text and barcodes. But the issues is when we are printing the label. We are getting spaces in the Text and in the Text elements fields. I have tried to give &g_name(C)&. But it is not working even i worked with style sheet spaces no luck.
    Currently out text and fields are printing like this
    s h r i y a n
    material number
    1111  -001  -000
    They should print like
    shriyan
    1111-001-000
    According to the ZEBRA suggestions we are using the font helve.
    Plase help us it is very urgent.
    Reward point will be given.
    Thanks

    Hi,
    Just use Condense g_name inside the program lines.
    Just to see how it behaves put a hard breakpoint.
    Break Username. and check the condense statement.
    condense <your field> no-gaps.
    Create program lines ahead of printing. give the field you want to condense in the input and output parameters of the program lines.
    Use condense inside the program lines.
    Thanks,
    Vamshi.

  • Remove xml element using JS[CS3]

    Hi, I have an xml structure where i want to remove some paritcular element named "extlink".
    I do have one script with me but it doesn't wipe out all specific xml element from structure.
    var myDoc = app.activeDocument;
    var foundtext = 0
    Query_Remove (myDoc);
    alert ("You have removed " + foundtext + " " +" Link !!")
    exit (0);
    function Query_Remove(elm)
    try
    for(var i=elm.xmlElements.length-1; i>=0; i--)
         if((elm.xmlElements[i].markupTag.name == "extlink") && (elm.xmlElements[i].xmlElements[0].markupTag.name == "http"))
        var Store_CitAttri = elm.xmlElements[i].xmlElements[0].xmlAttributes.item("c_style").value;
         if(Store_CitAttri == "URL")
          elm.xmlElements[i].remove();
         foundtext = foundtext + 1;
       Query_Remove(elm.xmlElements[i]);
    catch (e){
    Some time it skip the element from all figure captions and some time from body text and some time it works perfectly
    Could any one figure it out why this script behaviour is not consistent as i am new to scripting and not getting any idea about this.
    Thanks
    Mac

    Okay, after peering over your code and trying a few things out I see one immediate problem and one possible improvement.
    The problem lies in this:
    1. if condition is true, remove item
    2. check recursively
    The problem is .. if an item is removed, the following recursive check will always fail. However, the entire loop is wrapped into a try..catch, so InDesign will not alert you that it failed. Instead, it will continue with what's after the loop, exactly because the try..catch is around the entire loop!
    Change the loop code to this
    if((elm.xmlElements[i].markupTag.name == "http") && (elm.xmlElements[i].parent.markupTag.name == "extlink"))
        var Store_CitAttri = elm.xmlElements[i].xmlAttributes.item("c_style").value;
        if(Store_CitAttri == "URL")
          elm.xmlElements[i].remove();
           foundtext = foundtext + 1;
           continue;
    Query_Remove(elm.xmlElements[i]);
    so the recursive checking is skipped. You can also remove the entire try..catch block, as this may hide additional errors ...
    The improvement is: as I started reading this thread from the top again, shouldn't you be removing the "extlink" items, rather than just the "http" ones inside?
    If so, remove the parent of the found item (which is always the "extlink"):
          elm.xmlElements[i].parent.remove();
    -- and, as this will break the loop (because you just removed the set of elements it was working in!), replace 'continue' with 'return'.
    Hope this helps

  • How to escape or remove the special characters in the xml element by regula

    Hi members,
    How to escape or remove the special characters in the xml element by regular expression  in java??
    For Example ,
    <my:name> aaaa </my:name>
    <my:age> 27 </my:age>
    In the above example , i have to retrieve the value of the <my:name> Element(For examlpe -- i have to get "aaaa" from <my:name> tag)...
    How to retreive this value by using DOM with XPATH in java
    Thanks in Advance

    Hi members,
    I forget to paste my coding for the above question....This is my coding......In this display the error...... Pls reply ASAP.......
    PROGRAM:
    import java.io.IOException;
    import java.util.Hashtable;
    import java.util.Map;
    import org.w3c.dom.*;
    import org.xml.sax.SAXException;
    import javax.xml.parsers.*;
    import javax.xml.xpath.*;
    public class DOMReaderForXMP {
         static Document doc;
         static XPath xpath;
         static Object result;
         static NodeList nodes;
         public DOMReaderForXMP() throws ParserConfigurationException, SAXException,
                   IOException, XPathExpressionException {
              DocumentBuilderFactory domFactory = DocumentBuilderFactory
                        .newInstance();
              domFactory.setNamespaceAware(true);
              DocumentBuilder builder = domFactory.newDocumentBuilder();
              doc = builder.parse("d:\\XMP.xml");
              XPathFactory factory = XPathFactory.newInstance();
              xpath = factory.newXPath();
         public static void perform(String path) throws Exception {
              result = xpath.evaluate(path, doc, XPathConstants.NODESET);
              nodes = (NodeList) result;
         public void check() throws Exception {
              perform("//my:name/text()");
              if (!nodes.item(0).getNodeValue().equals("application/pdf")) {
                   System.out.println("Mathces....!");
    ERROR:
    Exception in thread "main" net.sf.saxon.trans.StaticError: XPath syntax error at char 9 in {/my:name}:
    Prefix aas has not been declared

  • Remove XML tags from XML element in Oracle

    Hi,
    I have a requirement where I have to remove all the xml tags from xml element with banks, currently I'm using replace 4 times to replace all different types of xml tags, performance is really bad. is there any better option to remove xml tags from xml data leaving the actual data. please find the example data below.
    select
    TO_CLOB(REPLACE(REPLACE(REPLACE(REPLACE
    ('<Concatcolumn><ConcatGroupID>MyText Data goes here </ConcatGroupID><ConcatGroupID>Data agian</ConcatGroupID></Concatcolumn>','<ConcatGroupID>'),'<Concatcolumn>'),'</ConcatGroupID>',';'),';</Concatcolumn>')) AS Concatcolumn
    from dual
    **************Out put*************
    MyText Data goes here ;Data agian

    One way is to use xquery:
    SQL> with t as
    select xmltype('<Concatcolumn>
                          <ConcatGroupID>MyText Data goes here </ConcatGroupID><ConcatGroupID>Data agian</ConcatGroupID></Concatcolumn>'
       ) xml from dual
    select xmlquery('string-join(//text(), ";")' passing xml returning content).getclobval() xml from t
    XML                                                              
    MyText Data goes here ;Data agian                                
    1 row selected.

  • Remove XML element with JAXB

    Hi all,
    does anyone knows if it's possible to remove an xml element after that element has been set ? Using only jaxb if possible and not using other technology, for example DOM.
    I explain:
    umarshall car -->setOwner("me"); setSpeed("80"); -->marshall car
    will result into:
    <car>
    <owner>me</owner>
    <speed>80</speed>
    </car>
    I would like something that for example
    unmarshall car -->remove(speed); ....-->marshall car
    would result into:
    <car>
    <owner>me</owner>
    </car>
    could someone point out a way to do that ?
    thanks in advance...

    Okay, after peering over your code and trying a few things out I see one immediate problem and one possible improvement.
    The problem lies in this:
    1. if condition is true, remove item
    2. check recursively
    The problem is .. if an item is removed, the following recursive check will always fail. However, the entire loop is wrapped into a try..catch, so InDesign will not alert you that it failed. Instead, it will continue with what's after the loop, exactly because the try..catch is around the entire loop!
    Change the loop code to this
    if((elm.xmlElements[i].markupTag.name == "http") && (elm.xmlElements[i].parent.markupTag.name == "extlink"))
        var Store_CitAttri = elm.xmlElements[i].xmlAttributes.item("c_style").value;
        if(Store_CitAttri == "URL")
          elm.xmlElements[i].remove();
           foundtext = foundtext + 1;
           continue;
    Query_Remove(elm.xmlElements[i]);
    so the recursive checking is skipped. You can also remove the entire try..catch block, as this may hide additional errors ...
    The improvement is: as I started reading this thread from the top again, shouldn't you be removing the "extlink" items, rather than just the "http" ones inside?
    If so, remove the parent of the found item (which is always the "extlink"):
          elm.xmlElements[i].parent.remove();
    -- and, as this will break the loop (because you just removed the set of elements it was working in!), replace 'continue' with 'return'.
    Hope this helps

  • Out XML element values extract

    hi their
    How can I out XML element the values extract and in a loop in variable and/or in an array store?
    Example:
    [loop]
    <SA>'MS','GYM'</SA>
    Values 'MS' and 'GYM' should be in variables e.g var1='MS' and var2='GYM'
    [end loop]
    Please, help me!!!! Urgent
    thanx you for advice
    kind regards
    Holger

    create or replace procedure spTestXML is
      xml   xmltype;
      test  varchar2(100);
      test2 xmltype;
      cursor lvCur_GetAllSecGrps is
        SELECT extractValue(value(asec), '/SEC_GRP/NAME') as Name
        FROM table(xmlsequence(xml)) a,
             table(xmlsequence(extract(value(a), '/EVENT/SEC_GRP_LIST/SEC_GRP'))) asec;
    begin
      xml := xmltype('<EVENT>
    <SWTSUPDATE TYPE="1">
    <MEMBERID>9822598</MEMBERID>
    <DATETIME>Fri Jun 09 14:51:33 CDT 2006</DATETIME>
    <USERID>W951FVK</USERID>
    </SWTSUPDATE>
    <CONTACT_HISTORY>
    <USER>
    <USER_ID>W951FVK</USER_ID>
    <FIRST_NAME>John</FIRST_NAME>
    <LAST_NAME>Givens</LAST_NAME>
    </USER>
    <USER>
    <USER_ID>W951FNN</USER_ID>
    <FIRST_NAME>Mary</FIRST_NAME>
    <LAST_NAME>McNair</LAST_NAME>
    </USER>
    <CONSUMER>
    <CONS_SEQ_NBR>1387445</CONS_SEQ_NBR>
    <FIRST_NAME>SPRINGHOUSE</FIRST_NAME>
    <LAST_NAME>ELLIS</LAST_NAME>
    </CONSUMER>
    </CONTACT_HISTORY>
    <SEC_GRP_LIST>
    <SEC_GRP><NAME>cspupdatecustpayee</NAME><DESCRIPTION>Add/Update/Delete CSP Customer Payees</DESCRIPTION></SEC_GRP>
    <SEC_GRP><NAME>cspupdatepayment</NAME><DESCRIPTION>Add/Update/Delete CSP Payment</DESCRIPTION></SEC_GRP>
    <SEC_GRP><NAME>adminreports</NAME><DESCRIPTION>Administrate Reports</DESCRIPTION></SEC_GRP>
    <SEC_GRP><NAME>billopscsr</NAME><DESCRIPTION>Bill Operations CSR</DESCRIPTION></SEC_GRP>
    </SEC_GRP_LIST>
    </EVENT>');
      if xml.existsNode('/EVENT/SEC_GRP_LIST/SEC_GRP/NAME') != 0 THEN
        for lvAllSecGrps in lvCur_GetAllSecGrps loop
          dbms_output.put_line('Found: '||lvAllSecGrps.Name);
        end loop;
      end if;
    end spTestXML;gives
    Found: cspupdatecustpayee
    Found: cspupdatepayment
    Found: adminreports
    Found: billopscsrhth

  • Remove line breaks within a xml element

    Hi,
    I have a xml element that contains a long text string with multiple line breaks. something like this:
    text
    text
    text text
    text
    text text text
    text
    How can I remove all line breks except one, i e I still want a line brek after each text line:
    text
    text
    text text
    text
    text text text
    text
    Thanks for you help!
    Magnus

    This is a media object (BLOB) in a JDE report. But we have now modified the report to get the xml file correct from start instead.
    /Magnus

  • How to remove extra spaces in a xml formatted string

    Hi,
    I am trying to remove extra spaces between the xml tags. For
    example, if a string is something like
    ' <header 1> <header 2> test </header 2> </header1>'
    I want to get rid of the spaces only between the closing tag of header 1 and opening tag of header 2 and closing tag of header 2 and opening tag of header 1, in short ,I want to remove the extra spaces between the tags if there are no other characters between them. I do not want the remove the spaces between closing tag header 2 and opening tag of header ,as there is occurence of other characters.
    I am aware that this can be done by looping through the string and using instr to identify the characters '<' and '>', but I would like to use it as a last resort only.
    Can anyone suggest me a better way of doing it in a single go by manipulating the data?
    Any help is really appreciated.
    Regards,
    Anil.

    You can use the replace function. If you only expect one extra space, then:
    scott@ORA92> select replace ('<header 1> <header 2> test </header 2> </header1>',
    2      '><', '><')
    3 from dual
    4 /
    REPLACE('<HEADER1><HEADER2>TEST</HEADER2></HEADER
    <header 1> <header 2> test </header 2> </header1>
    If you expect more extra spaces, then you will need to wrap another replace function around it for each space, for example the following will eliminate up to three spaces:
    scott@ORA92> select replace (replace (replace ('<header 1> <header 2> test </header 2> </header1>',
    2      '>     <', '><'), '>     <', '><'), '> <', '><')
    3 from dual
    4 /
    REPLACE(REPLACE(REPLACE('<HEADER1><HEADER2>TEST
    <header 1><header 2> test </header 2></header1>

  • "Cut" an element out of XML?

    Folks,
    Please does anyone know a shortcut to "snip out" XML elements as serialized XML?
    The scenario is: We're SAX parsing a potentially very large (I guess upto maybe 200 MB) XML document. The data ("features") therein will be edited by the user in a third party GIS application... and then I need to quickly detect which "feature" elements have changed.
    I need to turn the modified features back into XML and send them back to the server, which updates the database. Currently the users have to manually mark which features have been modified and which have been deleted... a process which is subject to human error (and there have been some doozies, apparently).
    So... I'm trying to knutt-out a practical way to detect: "Has this feature been modified (or deleted).
    My thought was to calculate a hash (SHA1, MD5, or maybe just CRC32) of the serialized XML which represents the feature (both geometry and attributes) before and after... if they're different the feature has been modified. If the feature (identified by a unique id) is missing from the after shot then obviously it's been deleted.
    So... My question is: does anybody know a cheats way to get the XML-string for an element from a SAX parser? Note that I can't use a DOM (even for one feature) because the largest existing feature has a tad over 500,000,000 points.
    My best approach (the obvious one) so far is:
    IMPORT XML
    foreach feature
    1. parse the feature-XML into a model
    2. serialize the model to a StringBuffer
    3. calculate the hash (or whatever) and store it against the featureId.
    EXPORT XML
    foreach feature
    1. serialize the feature to StringBuffer
    2. recalcuate the hash (or whatever)
    3. compare the hash.
    Does this sound reasonable to you? It sounds slow but simple to me... Got any better ideas?
    Note that the third party editor has no "callback hooks" which allow me to handle the "feature modified" events, and whilste I can query and update it's internal database (dBase4 based) via the API, doing so is cumbersome.
    I've also looked into timestamps, which appear impossible... atleast I can't imagine how it could be done, short of writing my own dBase driver (which I'm not up for, thanks anyway;-).
    No ideas will be rejected... I'll try (almost) anything once.
    Cheers all. Keith.
    Edited by: corlettk on 16/04/2009 23:55 ~~ Clarity.
    PS: It's already past my bedtime... I shall check this post again tomorrow evening (in about 18 hours).
    Edited by: corlettk on 16/04/2009 23:56

    corlettk wrote:
    So... My question is: does anybody know a cheats way to get the XML-string for an element from a SAX parser? Well, obviously there isn't one. At least not when you phrase the question that way. Consider the case where the element in question is the root element: then you need to serialize the whole document.
    But you could read up on XMLFilter, which is a useful but little-known tool which works with SAX parsing.

  • White spaces in XML element

    Hi...
      I need to put in an XML element the string value "      ", that is six white spaces, but when the XML parser interpets the document this value is transform like a null value.
      Is there some way to preserve this value in the element?

    Thanks for you replay Reddi,
      Let me explain the scenario: The scenario is RFC --> XI  --> JDBC, one of the element of the FM sometimes could be have the value "      ", when this occurrs in the SXMB_MONI TC I see the value null in the element, that is the tag is <Element />, in this case I need to preserve this white space in the element. The message could be something like this:
    <root>
      <element1>value 1</element1>
      <element2>value 2</element2>
      <element3>      </element3>
    </root> 
    but I see the message in this form:
    <root>
      <element1>value 1</element1>
      <element2>value 2</element2>
      <element3 />
    </root>
    In the message mapping tool I assign the string value "      " and the problem still the same.
      Any Idea?

  • How to find out the page number of an xml element

    Hi everybody, sorry for my very bad english (french guy! logical). I hope you see what I'm looking for.
    I'm scripting (javascript) an exporting script of every articles from a multi-pages indesign script.
    In fact I could have one or more article in one file, every one of them is on an separate xml element. for each I have to export an xml file named with, first, the page number where appears the xml element, second, the number of exported article.
    I'm success the second purpose, but not the first.
    Someone have an idea ?

    Try this,
    var myDoc=app.activeDocument;
    var root = myDoc.xmlElements[0];
    var docTag = root.evaluateXPathExpression('//doc');
    for(i=0; i<docTag.length; i++)
        var docPos = docTag[i].insertionPoints.lastItem();
        var docFrame = docPos.parentTextFrames[0];
        var docPage;
        try
             docPage = docFrame.parentPage;
    catch(e)
            docPage = docFrame.parent.name;
        alert(docPage.name);
    Vandy

  • How to create XML element with out creating a document

    I ve been looking for hours for a method to create an XML element without the need for the Document. I am trying to create objects that access the database, and I need in each of these objects a method that returns only an element (ie. getXMLData()). And in the class that created these object, I nee to call the getXML() methods and construct a document. However, I am not looking to create the document if I am not going to use it. In the component class I need to be able to traverse the xml element and read and modify the values. Is there a way to do so with sun's JDK ?

    I ve been looking for hours for a method to create an
    XML element without the need for the Document.
    ... I am not looking to create the document if I
    am not going to use it.Hi M-A,
    Though you have been told the solution, let's stick to your original issue, just for the sake of interest. I gather what you have in mind is finding the answer to the following question: is there a way of creating a document without having to bind it to any data source? The answer is yes. What you might need is the createDocument() method of the DOMImplementation interface which offers lightwight document handling by obviating the need to construct a particular DOM instance. (You could also use the getDOMImplementation() method of the DOMImplementationRegistry interface, but it has bugs.) Here's a sample code:DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    DOMImplementation domImpl = parser.getDOMImplementation();
    Document doc = domImpl.createDocument(null, "rootnode", null);The above code produces the following document:<?xml version="1.0" encoding="UTF-8"?>
    <rootnode/>You can make this document even skinnier if you pass null values to all three parameters of the createDocument() method, in which case the document will only contain the prolog. I think both the creation and the structure of this document are simple enough for you to use it as some sort of utility (e.g. by putting the code in a separate class) for creating elements.

Maybe you are looking for