ActionScript 3.0 :: Search Attributes In Xml?
Dec 21, 2011<leval0 layput="Menu">
<level label="s" type="level" levelid="1"/>
<level label="a" type="level" levelid="2"/>
[code].....
<leval0 layput="Menu">
<level label="s" type="level" levelid="1"/>
<level label="a" type="level" levelid="2"/>
[code].....
I am dynamically creating a number of objects (movieclips) which all have a number of attributes.[code]and so on. i.e sub attributes. I don't think this is possible? Only sprite and movieclips can have dynamic attributes so unless atrbY is a movieclip (which it isn't, it's a string) it isn't allowed?Each object can have suboptions with further attributes associated with the chosen suboption.Later in the program I will manipulate, read and interact with the objects and they have text display behaviours dependent on the suboption chosen. That part (should) be straightforward! heh. One the object has the attributes attached in a usable format, accessing them should be simple.This will be for a store. i.e t-shirt1 has size small, price 10, size medium, price 12, size large, price 14. t-shirt2 has size medium, price 35, size large, price 40 and so on.[code]
This format of the XML can be adjusted if it would make the parsing easier.I am currently reading the XML in, stepping through, grabbing the individual parameter such as category and then adding it as an attribute of the object and it works fine. i.e. I end up with obj.category = 'catname'. However, on suboptions I am having a problem.Should I put all the suboptions in a multidimensional array and use nested loops to apply them to the object?I would still have the problem of objX.suboptionarray[Y].suboptionprice which isn't allowed? In the above XML case Y would be 0,1 and 2 giving 3 suboptions to objX and each suboptions would hold attributes such as pvid associated with that suboption.I could go down the horrible route, obj1.suboption1subptionprice ; obj1.suboption1suboptionpname; obj1.suboption1suboptionvalue; obj1.suboption2suboptionprice; obj1.suboption2suboptionpname and so on and so on for each suboption which could be five options (small,medium,large,x-large, xx-large) and which would "work" but would be bad programming and involve splicing names to get say, the "third" suboptions' price and pvid e.t.c
Going down the route of mutidimensional arrays sounds good except that on say 50 objects I would have stacks of arrays which I'm guessing isn't great in terms of resources?.Just to add, the number of suboptions varies between object, every object has a minimum of one suboption (default option) but can have as many as needed (unlikely to be more than 5 but should be scalable). i.e some t-shirts only come in medium whereas some have many sizes.I have a fair amount of leeway on the format of the XML which I generate from the database so the formatting of that could change to make the parsing easier.
I've just tried senocular's xml tutorials. [URL] The search query seems case sensitive. How to make it accept upper and lower case characters. Actually i'm trying to make a search by myself by using the same code.
View 6 RepliesI am trying to create a search field in AS3 to search keywords in a dynamic text field of the same flash movie, where the text is loaded from an XML file.
View 1 RepliesI've started a project a while ago, so far it is almost done but there is something that I seem not to be able to do alone... I would like to add a search function which I don't know how to do.It will not be a normal search function so I am going to try to beak it down with an easy example:
Let's say I did a project that is embeded somewhere in a normal html page with a main menu from where you can get to different city maps (e.g. New York, Paris, Berlin). The maps are seperate swfs. On all those maps there are several buttons for historical sites (or whatever) with a mousover function and a link to a page with more information about that specific site (on html).the names of the buttons are always a letter and a number (New York: "N1","N2","N3"...; Paris: "P1","P2","P2"... instance name for P1 is p1_btn)
What I need now is a search field in the main menu where you can search for those buttons. Meaning if I type in "N2" and hit search it will take me to the New York swf and show me button "N2".
I know this might not make much sense like this but the actual version is quite different and more complicated context-wise. Therefore if possible I would like to leave it that way with the main menu, the linked swfs and the buttons.
I've got a catalog of events in XML that is read into my Flash swf. I'm trying to develop a search box that will search through the titles, descriptions, presenters, etc. and return a list of related events.
Does anybody know a prebuilt AS2 system that does this? Or a good tutorial on how to go about this? I have googled, but haven't found much.
Here is my approach so far. When I load in the XML I create an array of the frequency of all the words in the nodes that I'm interested in. I figured it would be useful to do this once instead of each time a search is performed. I store that word index in another array with an index that will take me back to the original node. I was trying to figure out if there was someway to put it all into one index, but then I'm not sure how I'd link back to the original nodes.
When performing a search I look through the array of word indexs and check for the word and return another array of which original nodes contain the word.
If the search term isn't represented I generate all the permutations of the word that have an edit distance of 1 -- i.e. that have a letter changed, added, or deleted in any position. So for example if the search is for "the" the list of 1-edit would be ahe, bhe, ... tae, tbe,... tha, thb...athe, bthe,...tahe,tbhe, ....... he, te, th. If any of those are found it returns the results and puts up a "Did you mean xxxxx?" type of notice.
So far all of this is working rather well.
I'm still working on figuring out what to do if the user puts two words into the search box.
Also haven't figured out what to do with plurals and other "stem" type situations.
I want to make this pretty simple and easy for people to get the results they want.
Its mostly the way google is set up that makes it so easy. I just happened to notice that the url for a google search is always the same except for the search variables at the end. http:[url]....So all I did was to add a textfield to get the variable to put on the end of the URL. (And a button to press)
on(press){
getURL("http://www.google.com/search?q=" + inputText);
}[code].....
P.S. I am going to put this into a thread too in case any one else is interested.
How do i search use the code to search?e.g. From Zoo, To City Hall.The zoo(hv already create the flash animate to city hall)but the problem is how to write a code to point to zoo(action script)!
View 2 RepliesI've got a flash movie that reads in an XML file and has an input text box. When you type something in the input box, I want to search through the XML and return the names of the elements that match whatever is currently in the input box, even if its only partially complete.The input box has an event listener of type Event.CHANGE on it and it runs the following function.
Code: Select allfunction searchWords(e:Event):void {[code].........
i was mugging on this tutorial :
[Code]...
The return a.attributes.first > b.attributes.first will return what value?
Long story short: I want to search a multidimensional array in AS3 for (in this example) the location of 6 strings - all of which are stored in another unrelared array. Long story long: Once I get the locations (in the multidimensional array) of each string, i then know where it's located, and can access other atributes of that object - so if i found the string "box3" is located in element [5] of my multidimensional array, i can now target: multiArray[5][3] to return the 4th item stored (keeping in mind we're starting from 0, so 3 is the 4th position).
I can get this to work once, but I'm trying to set up a for loop based on the length of my basic string storage array - this array holds (in this example) 6 instance name strings - each time my for loop loops, i need to run a search in my multdimensional array for the next consecutive instance name. Then, once I've located all of them (and store the results in a new temporary array) I can dig around in each location for the info I need.
[Code]...
After loading the following XML file, is there a way to count the number of attributes of the "question" node, and if possible, the number of items having the word "answer" in them? (in this case 4 should be returned, ie. answer1, answer2, answer3, answer4)
Code:
<?xml version="1.0" encoding="utf-8" ?>
<quiz>
<question text="The man went ___ the morning." answer1="at" answer2="on" answer3="in" answer4="out" correct="in" />
</quiz>
here's a painfully easy one I bet -- I'm aware of how to use EX4 to filter most pieces of the xml I need however how can I filter an XML list such as the one below to check say --- if a dog is a beagle? preferably as a Boolean.
[Code]...
I have XML below
<node id="id1"/><node id="id2"/>...
<edge id="eid1" fromId="id1" toId="id2"/>
<edge id="eid2" fromId="id3" toId="id1"/>
<edge id="eid3" fromId="id2" toId="id4"/>
Now I need get all edge base on nodeId,
nodeId = id1 -> eid1, eid2
nodeId = id2 -> eid1, eid3
nodeId = id3 -> eid2
nodeId = id5 -> Null
I want to get all xml elements (xml descendents) which have some attributes like:
<books>
<book concept="rr" author="xx"/>
<book concept="tt" />
<book concept="yy" />
<book concept="uu" author="xx"/>
</books>
I need to perform a xml descendent search for xml nodes with author attribute containing
results should be:
<book concept="rr" author="xx"/>
<book concept="uu" author="xx"/>
How do I get all the attributes that exist on a XML node? For example, I have the following XML:
<item id="100">
<defaults width="10" height="100" post="true">
</item>
I would like to get the names and values on the defaults node.
Here is some starter code:
if (item.defaults) {
var attributes:Object = item.defaults.@*; // found in another post
for each (var value:String in attributes) {
[Code]....
Problem is, whenever I try to change attributes like align or scaleMode I get the following error message:
"Access of possibly undefined property scaleMode through a reference with static type Class".
In what part of the code am I allowed to change Stage attributes?
I wonder if you can use the override in atributtes. If yes, how could I do this?
View 3 RepliesIs there anyway to get the number of attributes an xml node has.
I'm just not fond of the way you have to loop through an xml node ala [URL]
for (attr in this.childNodes[i].attributes) {
...
}
Is there nothing like childNodes[i].attributes.length?
In my project I have some xml I've embedded and am now parsing.
Here's an example of xml I have.
HTML Code:
<use>
<player>
<add var="health">2</add>
[Code].....
I guess I could just change the names of them in my XML but their must be a workaround. I could potentially not have control over the file and then I'd be screwed.
My XML looks like this...
<feature title="This is my /n features title"/>
I don't have access to change the schema.
In Flash I load the text content of the title attribute into a text field, problem is -- the prints instead of operating as a carriage return (new line).
Again, no access to the XML so changing the TextField to htmlText and adding a <br/> tag wont work.
When I try to load in my xml attributes it loads in all the attribures for that node not just the Title Or Description. How do I get it to just load the Title.
Code:
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadXML);
loader.load(new URLRequest("2152.xml"));
function loadXML(e:Event):void {
XML.ignoreWhitespace=true;
var xml=new XML(e.target.data);
[Code] .....
Is there a way to find an XML element by values of two attributes (XPath or whatever?)?
I would prefer not to loop through the result of one of the attributes search, because XML is huge and its processing is already slow.
Example:
myFeature = _contextXML.namespace::row.((@modelName==var1) AND (@featureTitle==var2))..@featureDescription;
I have set up my code to filter my xml attributes but need to be able to filter by a var that is dynamically set elsewhere. I can get the code to work if I set: var birthyear = "1980";
How do I get var birthyear to use the var yob that is set elsewhere in my code?
[Code].....
I was trying to use default xml namespaces, but came upon something strange.
I got the following piece of xml:
<animal type="sheep" xmlns="http://blabla">
<name>josh</name>
<age>2</age>
</animal>
[Code].....
now for some reason, the elements are correctly traversed using the default namespace. But the attribute isn't found. After a bit of debugging, I found that I could only retrieve the attribute when using xml.animal.attribute(new QName("", "type")). Why isn't the attribute in the same default namespace as the element?
How to find xml attributes valus
[Code]...
There are dashes in attributes of an xml, and I don't know how to filter them: Here you can see a simple example of the xml:
<posts>
<post>
<photo-url max-width="1280">http://blabla.tumblr.com/photo/98</photo-url>
</post>
</posts>
Because also the photo-url-tag has a dash, I needed to parse it with ...child("photo-url"). This worked fine, but if I want to filter these tags(photo-url), in order to receive all photo-url's with the same attribute: "max-widht='1280'", I couldn't manage to do so. I tried this approach:
var photoUrl:XMLList = xml.posts.post.child("photo-url").(@max-width==1280);
I get this error:
ReferenceError: Error #1065: Variable @max is not defined.
I've tried many different ways of accessing the name of an attribute, but just can't get it working.The current Function:
protected function applyProperties(_axml:XML):void
{
var list:XMLList = _axml.properties;[code]...........
I have tried the name, I've tried searching it as an Object, I looked for solutions on stackoverflow.. nothing has worked for me so far. Originally I had the properties node as such: fearing that Flash was interpretting incorrectly.
edit: It seems like the XML was interpretted rather than printed out..
I don't know why it happens, but all elements of my array has same value :(
[Code]....
I don't know why but all nodes in nodesList, has same location (the location of last point pushed to the array...)
Let's say I have a class which looks like this :
public class MyClass
{
public var attribute1;
public var attribute2;
}
and I'd like to get attribute1 and attribute2 as strings. I tried this :
var test:MyClass = new MyClass();
for (var key:String in test)
{
trace(test[key]);
}
but it does not work, it never goes in the loop. How can I do what I want to do ?