Enforcement of XML attribute with a structure?
I use xmlParse() to read an XML file into a structure and then deal with the structure (replace some of the XML attributes) and then write structure back as an XML file. The problem is that I lost the original order of the XML attributes when I convert a structure and instead end up with a new attribute for each element that is alphabetical order.
In other: c = 'text' d = 'text' element has = "text" / >
be rewritten in the form: element = 'text' c = 'text' d = "text" / >
which is a problem for this application.
Is it possible to work with XML in CF but keep ordering attribute (LinkedHashMap instead of a structure, perhaps)?
Thank you.
Walter
If you need to control the order of the attributes, you must write your xml code on hand, according to the XML specification, ordering attribute must not be important, so strictly speaking your condition here requires something XML which is contrary to his intention. And, therefore, has no way of making CF respect something that inherently isn't supposed to be respected.
NB: "I use xmlParse() to read an XML file in a structure"... xmlParse() creates an XML object, not a struct, so what you ask in your last paragraph doesn't really sense. xmlParse() will only create an XML object. If you want to read the XML data as something else than XML, you need to write your own function.
The best solution here, if poss, is to remove the importance of the order attribute in your application, because it is "wrong" to deduct any order, and you do a little logic a rod for your own back based on this ranking.
Not an answer 'just do it like this', I'm sorry, but that's what you get when the question is immersed in a Pandora's box... ;-)
--
Adam
Tags: ColdFusion
Similar Questions
-
XML attribute 'with' reserved?
While working on an implementation of XMPP I notice the "with" continuous attribute to throw errors when trying to access to set or get the data from it. What is a reserved word or something? So in fact difficult given "with" is widely used in the specifications...
var XML = < rootNode >
< = 'test' without the 'rest' = > cool < / item >
< / rootNode >;
trace (XML. Item.@without); No problem
trace (XML. Item.@with); Uncomment and you will get the error "syntax error: expected identifier with.»
It may be how access you during the review of the reserved words. Try trace (xml.item.attribute ('with')); or trace(xml.item.@["with"]);
-
dbms_xmlgen->; create oracle XML attribute with value type
I use the dbms_xmlgen to create my xml message and I use the oracle TYPEs to create xml message elements.
I need to create something like this:
< type Emp 'name' = > xyz < / Emp >
I tried to create the type as below
create type emp_t as an object ("type" "@type")...
But do not know how I need to set the value of this attribute.
Help, please. Thanks in advance for your help.Can be
SQL> select * from v$version where rownum=1; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod SQL> SQL> select dbms_xmlgen.getxml('select ename, ''name'' as "@type" from emp') from dual; DBMS_XMLGEN.GETXML('SELECTENAM --------------------------------------------------------------------------------
SMITH ALLEN WARD SQL>
-
With the help of the XML attributes in itemRenderer and labelFunction
Hello!
I searched for hours and read the Devguide but always impossible to find the solution to my problem.
I have a xml returned from php like this:
< files >
< record id = "1" name = "name_1" type = "0" / >
< record id = "2" name = "name_2" type = "0" / >
< record id = "3" name = "name_3" type = "1 / >"
< / documents >
I can bind the result returned from the HTTPService to a data grid:
< mx:DataGrid dataProvider = "{ret_XML.record}" width = "500" number of rows = "20" editable = "false" id = "dg" > "
< mx:columns >
<!-NEXT WORK! ->
"< mx:DataGridColumn headerText ="Name" dataField="@name " width ="300"/ >
<!- LABELFUNC don't DO NOT WORK IN LINE NEXT->
"< headerText ="Type"dataField="@type mx:DataGridColumn " labelFunction ="labelFunc">
< / mx:DataGridColumn >
"< headerText ="Id"mx:DataGridColumn dataField="@id " editable ="false">
< mx:itemRenderer >
< mx:Component >
<!-LINE FOLLOWING IS don't DO NOT WORK! ->
"{< mx:Button label="{data.@id} '/ >
< / mx:Component >
< / mx:itemRenderer >
< / mx:DataGridColumn >
< / mx:columns >
< / mx:DataGrid >
and I have a labelFunction like this:
private void labelFunc(item:Object,_column:DataGridColumn):String {}
return "Type:"+ item.@type; "
}
So, my problem is that when I bind the column to an XML attribute, it works fine but when I try to link it to an itemRenderer or use it in a function, it does not work. I'm trying for hours now, but just can't make it work.
I tried:
"{< mx:Button label="{data.@id} '/ >
< mx:Button label = "{data. () @id)} »/ >
"{< mx:Button label="{@data.id} '/ >
and perhaps others but no luck...
Please someone help me with this one!
Ty:
[Pig]Problem solved!
Well, post it on the forum after I solved my problem as follows:
So in itemRenderer just use data.attribute () with the desired XML attribute name
And in the labelFunction:
private void labelFunc(item:Object,_column:DataGridColumn):String {}
return "Type:"+ item.attribute ('type'); '.
}
Even with itemRenderer but rather data use () item.attributeI hope that this is the 'official' solution too...
[Pig]
-
How to remove the value of the XML attribute in the Indesign file with javascript
Hi all
How to remove the value of the XML attribute in the Indesign file.
What error is this?
in any case try this as well (one another),
var myDoc = app.activeDocument; attrDelete(myDoc); function attrDelete(elm) { for (var i = 0; i < elm.xmlElements.length; i++) { try{ for(j=0; j
Vandy
-
logical AND with the structure of the event
Hello world
The structure of the event can manage several events at once to do the same thing: looks like an OR logical operator. But I have not found a way to sequence events to approach a logic and example: you must click on a button to draw, then enter the image would change the mouse cursor. With a structure of the event, I can handle these 2 events separately or together (i.e. change the cursor), but I can't do a sequence of events.
Is this possible to do with a structure of the event?
I hope that I am clear (sorry for English btw). And thanks in advance.
Christophe
I don't think this is possible directly. You will need to add status information to your event loop that could enforce the order of events and the rules of logic you want. Where transformation you would have to check whether the required event has occurred before this event. If that were the case, perform your treatment. If this isn't the case, ignore the event. Your first event would need set this status information. You can also include some kind of time-out for the second event were to occur within a specific period.
This type of logic may be better treated with the help of producer/consumer architecture and a state machine in the task of the consumer.
-
How to normalize/linearize whitspace in XML attributes?
Hello
I have data in a CLOB column I need to appeal to an XML attribute. The data may contain CR, LF and tabs - that the XML must be preserve way standardized/linearized (that is to say using & #10; & #13; etc.)
I tried using XMLROOT - it deletes the line a total break.
I tried to use XMLSERIALIZE - when finished with clause VERSION it also suppresses the newline, when without the VERSION, it keeps the jump line but not standardized.
Do not use these preserves the jump line - but not standardized.
Is there a bed in order to standardize XML - or should I use replace nested?
Examples below.
Thanks in advance.
SQL> set long 20000 SQL> set lines 1000 SQL> set pages 1000 SQL> select * from v$version BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production 5 rows selected. SQL> -- as XMLTYPE, newline (chr(10)) is preserved, but not normalized SQL> select XMLELEMENT("A", XMLATTRIBUTES(1 as ID, 2 ||chr(10)||3 as "TXT") ) from dual XMLELEMENT("A",XMLATTRIBUTES(1ASID,2||CHR(10)||3AS"TXT")) --------------------------------------------------------- <A ID="1" TXT="2 3"></A> 1 row selected. SQL> -- as CLOB, newline (chr(10)) is preserved, but not normalized SQL> select XMLELEMENT("A", XMLATTRIBUTES(1 as ID, 2 ||chr(10)||3 as "TXT") ).getclobval() from dual XMLELEMENT("A",XMLATTRIBUTES(1ASID,2||CHR(10)||3AS"TXT")).GETCLOBVAL() ---------------------------------------------------------------------- <A ID="1" TXT="2 3"></A> 1 row selected. SQL> -- with XMLROOT - newline is removed SQL> select XMLROOT( XMLELEMENT("A", XMLATTRIBUTES(1 as ID, 2 ||chr(10)||3 as "TXT") ), VERSION '1.0') from dual XMLROOT(XMLELEMENT("A",XMLATTRIBUTES(1ASID,2||CHR(10)||3AS"TXT")),VERSION'1.0') ------------------------------------------------------------------------------- <?xml version="1.0"?> <A ID="1" TXT="2 3"/> 1 row selected. SQL> --with XMLSERIALIZE without VERSION clause - newline is preserved but not normalized SQL> select XMLSERIALIZE(DOCUMENT XMLELEMENT("A", XMLATTRIBUTES(1 as ID, 2 ||chr(10)||3 as "TXT") ) ) from dual XMLSERIALIZE(DOCUMENTXMLELEMENT("A",XMLATTRIBUTES(1ASID,2||CHR(10)||3AS"TXT"))) ------------------------------------------------------------------------------- <A ID="1" TXT="2 3"></A> 1 row selected. SQL> --with XMLSERIALIZE with VERSION clause - newline is removed SQL> select XMLSERIALIZE(DOCUMENT XMLELEMENT("A", XMLATTRIBUTES(1 as ID, 2 ||chr(10)||3 as "TXT") ) VERSION '1.0') from dual XMLSERIALIZE(DOCUMENTXMLELEMENT("A",XMLATTRIBUTES(1ASID,2||CHR(10)||3AS"TXT"))VERSION'1.0') ------------------------------------------------------------------------------------------- <A ID="1" TXT="2 3"/> 1 row selected. SQL> --doing replace works, but seems "un-natural" and very inefficient SQL> select replace( XMLELEMENT("A", XMLATTRIBUTES(1 as ID, 2 ||chr(10)||3 as "TXT") ), chr(10),' ') from dual REPLACE(XMLELEMENT("A",XMLATTRIBUTES(1ASID,2||CHR(10)||3AS"TXT")),CHR(10),' ') ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- <A ID="1" TXT="2 3"></A> 1 row selected.
Question still pending, if anyone has another way - or knows for sure replace is the only option.
Replaces nesting calls is probably the only option, of course, but not the way you have tried in your examples.
Do replace it at an earlier stage, directly on the data source.
Here's how I'd do:
SQL> set define off SQL> SQL> SQL> select xmlserialize(document 2 xmlelement("A", 3 xmlattributes(noentityescaping 4 1 as id 5 , replace( 6 dbms_xmlgen.convert('X'||chr(10)||'Y') 7 , chr(10) 8 , ' ' 9 ) as txt 10 ) 11 ) 12 no indent 13 ) 14 from dual ; XMLSERIALIZE(DOCUMENTXMLELEMEN --------------------------------------------------------------------------------
1. use DBMS_XMLGEN. CONVERT to handle reserved characters.
2-using REPLACE to manage a specific entity escape
Option NOENTITYESCAPING 3 - use to keep the entity references comes to be presented
-
ESD context-setting shaped based on XML attributes
Hi all
I have some difficulty to get my EDD to format correctly based on the XML attributes. Basically, what I would like is:
I have a few XML:
< root >
< elem > example text sample text sample text sample text. < / elem >
< elem multi = "true" > example text example text example text sample text. < / elem >
< / root >
For items with the multi = 'true' attribute, I want to be prefixed by a ball and with a left indent of 0.14"in order to align the text with the ball.
• Example text sample text
example text sample text.
Those without the attribute are simply formatted according to the paragraph format (no prefix, 0.0 left indent ")
Example text sample text
example text sample text.
My EDD looks like this:
(Container) element: elem
General rule: < ANY >
List of attributes
Name: multi String
Rules of prefix
If the context is: [multi = 'true']
Prefix: •
Text format rules
Paragraph element format: element
If the context is: [multi = 'true']
Basic properties
Dashes
Withdrawal left: 0.14 "
After importing my XML, the prefix part works perfectly. No problem.
However, the left based on the context does not work at all - all items inherit only the removal of paragraph (0.0 "). So it ends up looking like this:
• Example text sample text
example text sample text.
I can't understand this. No formatting in ESD does not replace the formats specified paragraph or something?
Any help would be greatly appreciated.
Thank you
CarlPlease do not take into account the incomplete answer, it seems to me having posted. What I started to say is:
Carl,
Format of the item rules override formatting that it inherits from its parent, as well as modalities parentElement must not interfere with those that you specify for prim.
I don't see the problem, and without actually opening the file in FM, it is difficult for me to guess what might be wrong. A number of things that I do are:
(1) set another property in the
rule, for example, to set the font size to 70pt and changes the left indent. A change in font size will confirm that the rule was actually fired. (2) inspect the left indent in paragraph Designer. Maybe you have set it to 0.14pt instead of 0.14 to?
-Lynne
-
I need to replace the 'M05_LEMO9433_06_SE_CH05' to M05_LEMO5401_06_SE_CH05 xml attribute value
In the document with more than thousand entries
I used the following code but it does not work
function AddReturns() {}
myIdName = "AddReturns";
This.XPath = "//p//span//a";
This.Apply = function (myElement, myRuleProcessor) {}
with (MyElement)
{
try {}
If (myElement.xmlAttributes.item("href").value.match ("LEMO9433"))
{
Fig var = myElement.xmlAttributes.itemByName("href").value;
var fig.replace = figv ("9433', 'O5401')
myElement.xmlAttributes.itemByName("href").value = figv;
}
myElement.xmlAttributes.item("id").name = "olinkend";
} catch (e) {}
}
Returns true;
}
}
Try this:
var main = function() { var root, xes, n, ov = "M05_LEMO9433_06_SE_CH05", nv = "M05_LEMO5401_06_SE_CH05"; if ( !app.documents.length ) return; root = app.activeDocument.xmlElements[0]; xes = root.evaluateXPathExpression ("//*[@*='"+ov+"']" ); n = xes.length; while ( n-- ) { changeAttributeValue ( xes[n], ov, nv ); } } var changeAttributeValue = function ( xe, oldValue, newValue ) { var xas = xe.xmlAttributes, xa, n = xas.length; while ( n-- ) { xa = xas[n]; xa.value == oldValue && xa.value = newValue; } } main();
-
Set XML attributes to multiply items
Hello world
This is my situation. I have a document with multiple pages and multiple objects on each page.
now, I want to get the coordinates and dimensions of an object and write the data as an XML attribute.
The script should do this for each object in my document.
That's what I got so far:
function creatAtt() {}
for (var i = 0; i < app.selection.length; i ++) {}
var myObject = app.selection [i];
var myXMLobject = myObject.associatedXMLElement;
var ycoords = myObject.geometricBounds [0];
var xcoords = myObject.geometricBounds [1];
var width = myObject.geometricBounds [3] - myObject.geometricBounds [1];
var height = myObject.geometricBounds [2] - myObject.geometricBounds [0];
myXMLobject.xmlAttributes.add ("Y-coordinate", ycoords.toString () + "px");
myXMLobject.xmlAttributes.add ("X-coordinate", xcoords.toString () + "px");
myXMLobject.xmlAttributes.add ("Width", width.toString () + "px");
myXMLobject.xmlAttributes.add ('Height', height.toString () + "px");
}
}
creatAtt();
When I select an object and run the script he writes only the data for the selected object, not for all objects. Someone a tip how to fix?
Hi Sebbomatico,
Now, I remove the attributes at the beginning and after I generated. Please check this code and the snapshot.
var myDoc= app.activeDocument; var myPages = myDoc.pages; for (var i = 0; i < myPages.length; i++){ var myActualPage = myPages[i].pageItems; for (var j = 0; j < myActualPage.length; j++){ var myObject= myActualPage[j]; var myXMLobject = myObject.associatedXMLElement; var ycoords= myObject.geometricBounds[0]; var xcoords= myObject.geometricBounds[1]; var width = myObject.geometricBounds[3] - myObject.geometricBounds[1]; var height = myObject.geometricBounds[2] - myObject.geometricBounds[0]; try{myXMLobject.xmlAttributes.everyItem().remove();}catch(e){}; myXMLobject.xmlAttributes.add ("Y-Koordinate", ycoords.toString() + " px"); myXMLobject.xmlAttributes.add ("X-Koordinate", xcoords.toString() + " px"); myXMLobject.xmlAttributes.add ("Width", width.toString() + " px"); myXMLobject.xmlAttributes.add ("Height", height.toString() + " px"); } }
-
Can someone please tell me the "see correct / more effective to get the 'status' XML ' attributes (ID, CssClass, Description and IsActive to the XML code below):
Implementation will be the standalone .swf file
(XML)
<ArrayOfLineStatus>
<LineStatus ID="0" StatusDetails="">
<BranchDisruptions/><Line ID="1" Name="Bakerloo"/>
<Status ID="GS" CssClass="GoodService" Description="Good Service" IsActive="true">
<StatusType ID="1" Description="Line"/></Status></LineStatus>
</ArrayOfLineStatus>< ArrayOfLineStatus >
< LineStatus ID = "0" StatusDetails = "" >
< BranchDisruptions / >
< line ID = "1" Name = "Bakerloo" / >
< State ID = 'GS' CssClass = "GoodService" Description = "Good Service" IsActive = "true" >
< StatusType ID = '1' Description = 'Line' / > < / status >
< / LineStatus >
< / ArrayOfLineStatus >
There is no good way with as2:
trace(this.firstChild.childNodes[1].childNodes[4].) Attributes ['ID']);
trace(this.firstChild.childNodes[1].childNodes[4].) Attributes ['CssClass']);
etc.
-
How to add the XML attribute to an element using BPEL assign
I have a xml request to a bpel process that contains no attribute.
After some process, I need to create this missing attribute and specify a value.
I tried to use the XML fragment in the business to be divested. But how do I create an attribute?
This XML node which I am trying to create an attribute is a very large knot with many dynamic typing(xsi:type). I can just re - create the complete xml code with the required nodes.
Anyone know how I can create an attribute xml using the BPEL entitlement? I don't want to use the Java code in my process.
Thank you.You can use the attribute bpelx:insertMissingToData on the item to copy, for example:
Query="/client:process/@time"/ >
If not there is time of the attribute in the process element, it will be added.
-
POOR RECOVERY OF THE XML ATTRIBUTE VALUES
Hi all
I searched this forum and the web a way to get the value of an xml attribute. The solutions I found always had a problem, the values returned when concatenated without any separators, so I can't know every value.
Here's how:
BEGIN
l_bfile: = BFILENAME ('CTEMP1', nome_fich);
DBMS_LOB. FileOpen (l_bfile);
DBMS_LOB. LoadFromFile (l_clob, l_bfile, DBMS_LOB.lobmaxsize);
DBMS_LOB. FileClose (l_bfile);
xmlx: = XMLTYPE (l_clob);
Str: = xmlx. Extract('rowset/Row/@id'). GETSTRINGVAL();
dbms_output.put_line (' :'|| id values) (STR);
END;
Returns the string str: 123456654321 for this example
<? XML version = "1.0" encoding = "UTF-8"? >
rowset <>
< row id = "123456" >
< name > Peter < / name >
< / row >
< row id '654321' = >
< name > Louis < / name >
< / row >
< / lines >
I want to get each id concatenated for example values (123456:654321) instead, I get the concatenated values (123456654321).
Does anyone know a work around for this problem?
Cordially Pedro.11.2 you can use listagg()
SQL> with t as (select xmltype('
2 ') xcol from dual) 9 select listagg(v.val,':') within group (order by null) val 10 from t,xmltable('/rowset/row/@id' 11 passing t.xcol 12 columns val varchar2(1000) path '.') v; VAL ------------------------------------------------------------------------------------------------------------------------ 123456:6543213
5Peter 46
8Louis 7If not 11.2
SQL> with t as (select xmltype('
2 ') xcol from dual) 9 select xmlquery('fn:string-join(/rowset/row/@id,'':'')' 10 passing by value t.xcol returning content) val 11 from t; VAL ------------------------------------------------------------------------------------------------------------------------ 123456:6543213
5Peter 46
8Louis 7 -
Until a few days ago when I opened a file XML with Firefox, I see the content of the file appears with line breaks and ' < ' and ' / > ' and elements. Like this:
fixed image in < typeOfResource > < / typeOfResource >
<genre authority="marcgt">picture</genre> <genre authority="nmc">Print, Photographic</genre> <originInfo> <dateIssued encoding="marc">1884</dateIssued> <dateIssued encoding="marc">1884</dateIssued> <issuance>monographic</issuance> </originInfo> <language>
Now, it will display like this:
still image picture Print, Photographic 1884 1884 monographic eng electronic
No tags or line breaks. I need to see the entire XML file. How can I configure FireFox to display this for me? One of my colleagues uses v31.0 and XML views with tags and the line breaks for him.
For example, I was looking at files sitemap.xml (search Google for inurl:sitemap.xml). For those who have not declared a style sheet, you should always see the classic "source highlight: presentation
Example: http://www.website.com/sitemap.xml
Are the files that don't appear as similar planned by not declaring a style sheet?
As a temporary workaround, you can view the source to see the original. Either:
- CTRL + u
- Right click > view Page Source
-
major error with the structure of the event
IM under LABVIEW 13.0 PRO
I don't know when this strarted bug happening, but now when I add a business to a structure of the event. Freezes in LabVIEW. I have to close labview with the Task Manager.
It doesn't matter what code I'm working with, even a new VI, with nothing else than a structure of the event.
I tried this on my desktop PC, my laptop and my CPU DAQ.
The error occurs on my desktop and my laptop. But it does not occur on my CPU DAQ.
Whenever I click on add event usually case, you get a popup to configure and add cases, but with the popup error never comes to the top and labview crashes.
Theres no code to share the problem ocured when adding events to the event structure. It happened with any structure of the event, in any code, all the time.
I spoke to an engineer of apllication of labview and suggested to delete the labview.ini file located in the installation of labview directory. I did this and the problem was solved.
Still not sure what caused this to happen.
Maybe you are looking for
-
I can't update the latetst windows update and I've had this problem for 2 weeks now... I have 10 updates that cannot download and receive this error message: code 641 and code 80070641 windows update encountered an unknown error. I tried several ste
-
Unrecoverable system when installing Explorer 9 error
I just installed Explorer 9. Then the computer shuts off itself.Now, I get the message "c000021a fatal system error" when I try to start. I tried the repair and I tried to start windows normally. Nothing works. I pressed F8 and tried to go for the la
-
I accidentally deleted run form my work computer to windows 7, how I get it back?
How to get back on my computer?
-
Is it possible to set up e-mail alerts for when the central Manager displays an alert. For example recently one of our devices show that a diet is bad and must be replaced. I see in the Manager of the central, there is a section for the SMTP server
-
as hago TR open error selecciono por este tipo archivos con este progarama
the truth're por error Select block of notes to open an archivo y ahora put todos archivos to con lo notas block