Querying for first child node's value of a certain tag
Hi,
I am using the java parser 2 from Oracle. Given a XML document
containing the following
<course>
<Name>Calculus</Name>
<Dept>Math</Dept>
<Instructor>
<Name>Jim Green</Name>
</Instructor>
<Student>
<Name>Jack</Name>
<Name>Mary</Name>
<Name>Paul</Name>
</Student>
</course>
I want to efficiently obtain the value of first child node of
<course> whose tag is <Name>.
I could not find any mtd that can do that efficiently. The
nearest match is the mtd getElementsByTag("Name") which
traverses the entire tree under <course>.
Any help appreciated !
Thanks in advance
Mak
null
Mak (guest) wrote:
: Hi,
: I am using the java parser 2 from Oracle. Given a XML document
: containing the following
: <course>
: <Name>Calculus</Name>
: <Dept>Math</Dept>
: <Instructor>
: <Name>Jim Green</Name>
: </Instructor>
: <Student>
: <Name>Jack</Name>
: <Name>Mary</Name>
: <Name>Paul</Name>
: </Student>
: </course>
: I want to efficiently obtain the value of first child node of
: <course> whose tag is <Name>.
: I could not find any mtd that can do that efficiently. The
: nearest match is the mtd getElementsByTag("Name") which
: traverses the entire tree under <course>.
: Any help appreciated !
: Thanks in advance
: Mak
Your best bet, if you do not need the entire tree, is to use the
SAX interface to return the desired data. Since it is event
driven it does not have to parser the while document.
Oracle XML Team
http://technet.oracle.com
Oracle Technology Network
null
Similar Messages
-
Xpath: get attributes from first child node
Hi,
I have some problems by getting the attributes from the first child node, if i try to get child elements everything works fine, but whenever i need the elementvalue from a node with attributes i doesn't return anything.
The xpath expression works fine if i want to get the element value from all childs, but not when i just want from one of them.
This one works,
XPathFactory factory1 = XPathFactory.newInstance();
XPath xpath = factory1.newXPath();
xpath.setNamespaceContext(new PersonalNamespaceContext());
XPathExpression expr
= xpath.compile("//default:DeviceExchange[1]/default:Status/text()");
// gets the value of the node picked out
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
names[i] = nodes.item(i).getNodeValue();
String a = names;
// checks if status is exchanged, if it is sets status to 1
if (a.length() == 9){
names[i] = "1"; }
else{ names[i] = "0";}
System.out.println(names[i]);This doesn'tXPathFactory factory2 = XPathFactory.newInstance();
XPath xpath2 = factory2.newXPath();
xpath2.setNamespaceContext(new PersonalNamespaceContext());
XPathExpression expr2 = xpath2.compile("//default:DeviceExchange[1]/default:Field[@names='MLPKTID']/text()");
Object result2 = expr2.evaluate(doc, XPathConstants.NODESET);
NodeList nodes2 = (NodeList) result2;
for (int i = 0; i < nodes2.getLength(); i++) {
names2[i] = nodes2.item(i).getNodeValue();
System.out.println(names2[i]);}Does anyone have any ideas? I will apreciate all help!
Edited by: fusen on Oct 25, 2007 1:12 AMSorry, solved myself. Just � typo that that i couldn't detect.
-
Invoking BPEL partnerlink each for one child node
Hi
I have a requirement for invoking partnerlink (DB Adapter) for each child node of input message of BPEL service! E.g. I have to update or insert an employee! I received list of of employees in input message like below.
<employee_list>
<employee>
<name> Ram </name>
<Age> 21 </Age>
<dept> IT </dept>
<isNew>N</isNew>
</employee>
<employee>
<name> Hari </name>
<Age> 21 </Age>
<dept> IT </dept>
<isNew>Y</isNew>
</employee>
</employee_list>
So the requirement is to call DB_Call partnerlink for each employee node in above!
Is this possible in BPEL? If yes, how?
Thanks In Advance
PriyadarshiYes you can, use a fo reach loop in bpel, loop for the count of employee, then have an if condition to check whether you want to update or insert for and use invoke node to call the appropriate operation.I hope you have gone through the upsert operation in database adpater which automatically supports insert or update. If a record is present it updates else inserts a new one.
-
[Oracle 8i] Query for N rows by column value?
I was just wondering if what I want to do is possible within my query (rather than programmatically)...
I want to return the N most recent records for each unique value in a particular column.
Here's a sample table:
CREATE TABLE orders
( order_no numeric(10)
part_no varchar(5)
close_date date
order_qty numeric(10)
scrap_qty numeric(10)
CONSTRAINT order_pk PRIMARY KEY (order_no)
);And some sample data....
INSERT INTO orders VALUES
(0000012345,'ABC-1',TO_DATE('01-01-2010','mm-dd-yyyy'),10,1);
INSERT INTO orders VALUES
(0000013498,'ABC-1',TO_DATE('01-05-2010','mm-dd-yyyy'),12,2);
INSERT INTO orders VALUES
(0000033452,'ABC-1',TO_DATE('01-10-2010','mm-dd-yyyy'),5,0);
INSERT INTO orders VALUES
(0000001468,'ABC-1',TO_DATE('01-15-2010','mm-dd-yyyy'),15,1);
INSERT INTO orders VALUES
(0000022349,'BR723',TO_DATE('01-03-2010','mm-dd-yyyy'),8,1);
INSERT INTO orders VALUES
(0000069581,'BR723',TO_DATE('01-05-2010','mm-dd-yyyy'),5,0);
INSERT INTO orders VALUES
(0000436721,'BR723',TO_DATE('01-10-2010','mm-dd-yyyy'),14,1);
INSERT INTO orders VALUES
(0000213446,'A5001',TO_DATE('01-06-2010','mm-dd-yyyy'),5,1);
INSERT INTO orders VALUES
(0000327987,'A5001',TO_DATE('01-08-2010','mm-dd-yyyy'),5,0);
INSERT INTO orders VALUES
(0000041353,'A5001',TO_DATE('01-14-2010','mm-dd-yyyy'),12,1);
INSERT INTO orders VALUES
(0000011241,'A5001',TO_DATE('01-15-2010','mm-dd-yyyy'),5,1);In this example, what I want to return are the 2 most recent orders (by close_date) for each part number.
Here is a table with the results I want to get, based on the scenario above:
order_no part_no close_date order_qty scrap_qty
0000001468 'ABC-1' '01-15-2010' 15 1
0000033452 'ABC-1' '01-10-2010' 5 0
0000436721 'BR723' '01-10-2010' 14 1
0000069581 'BR723' '01-05-2010' 5 0
0000011241 'A5001' '01-15-2010' 5 1
0000041353 'A5001' '01-14-2010' 12 1Is it possible to write a query to get these results, or am I going to have to query for all available data, and find the 2 most recent rows programmatically?
Thanks in advance!Hi,
user11033437 wrote:
I'm going to test that out right now. I think if it works, I may need to use dense_rank() rather than rank(), because it is possible that two orders for the same part number could have the same close date, and according to what I've looked up on the rank() and dense_rank() functions, rank() can give non-consecutive results if the values are the same.What's wrong with non-consecutive values?
Use RANK, DENSE_RANK or ROW_NUMBER depending on what you want.
For example; say a certain part has been ordered 8 times:
3 times with close_date January 29, 2010 (all at exactly the same time),
4 times with close_date January 28, 2010 (all at exactly the same time), and
1 time with close_date January 27, 2010.
If you ask for the last 2 rows:
RANK will give you the 3 rows from January 29. (All 3 have an equal claim to being in the top 2.)
DENSE_RANK will give you the 7 rows from January 28-29 (the last two values , regardless of how many rows have them).
ROW_NUMBER will give you 2 rows from January 29. (Which 2? It's arbitrary unless you add a tie-breaker to the ORDER BY clause.)
All these functions are available in Oracle 8.1. -
Alternative for first-child and last-child
Hi all,
I am looking to style a ListView with rounded corners (similar to iOS), but so far, I have not been able to find a way to do this without first-child and last-child pseudoselectors, which are not supported in JavaFX, according to http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html.
Simply setting rounded corners on a ListView causes the ListCells to pop out, unless I set rounded corners on them as well. But I only want to to this on the top and bottom child.
Does anyone have a workaround for this ?Can't you solve it by setting a border on the top and the bottom of your listview?
-
Inconsistent results for adding child node in a JTree
I have a JTree where I add child nodes when a user clicks on the node or handle. When the user clicks on the node, through implementing TreeSelectionListener interface, I add a node, the tree expands, and I see the newly added node. However, when the user clicks on the handle, through implementing the TreeExpansionListener, the tree does not expand and I do not see the newly added node. The problem is repeatable by compiling the code below.
Why is there this difference? Aren't all the methods implemented through the TreeSelectionListener and TreeExpansionListener in the SWT thread?
public class TestFrame extends JFrame implements TreeSelectionListener, TreeExpansionListener {
public TestFrame() {
String[] alphabets = {
"a", "b", "c", "d", "e", "f", "g",
"h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u",
"v", "w", "x", "y", "z"
DefaultMutableTreeNode top = new DefaultMutableTreeNode("CEDICT");
for(int i=0; i < alphabets.length; i++) {
DefaultMutableTreeNode node =
new DefaultMutableTreeNode(alphabets) {
public boolean isLeaf() { return false; }
top.add(node);
JTree tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
tree.addTreeExpansionListener(this);
tree.setShowsRootHandles(true);
JScrollPane treePane = new JScrollPane(tree);
treePane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
treePane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
treePane.setSize(new Dimension(200,400));
treePane.setPreferredSize(new Dimension(200,400));
getContentPane().setLayout(new BorderLayout());
getContentPane().add(treePane, BorderLayout.CENTER);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int inset = 50;
setBounds(inset, inset,
screenSize.width - inset*2,
screenSize.height - inset*2);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
show();
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame.setDefaultLookAndFeelDecorated(true);
TestFrame frame = new TestFrame();
public void valueChanged(TreeSelectionEvent e) {
JTree tree = (JTree)e.getSource();
DefaultMutableTreeNode node =
(DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
System.out.println(node);
Date date = new Date();
node.add(new DefaultMutableTreeNode(date.toString()));
public void treeCollapsed(TreeExpansionEvent event) {
JTree tree = (JTree)event.getSource();
TreePath path = event.getPath();
DefaultMutableTreeNode node =
(DefaultMutableTreeNode) path.getLastPathComponent();
System.out.println(node);
Date date = new Date();
node.add(new DefaultMutableTreeNode(date.toString()));
tree.invalidate(); //does not help to show newly added child
public void treeExpanded(TreeExpansionEvent event) {
JTree tree = (JTree)event.getSource();
TreePath path = event.getPath();
DefaultMutableTreeNode node =
(DefaultMutableTreeNode) path.getLastPathComponent();
System.out.println(node);
Date date = new Date();
node.add(new DefaultMutableTreeNode(date.toString()));
tree.invalidate(); //does not help to show newly added childI couldn't figure out why inserting a node in the valueChanged(...) method works. In all three methods no listeners are notified about the change, so you would think all three would fail.
For a JTree using the DefaultTreeModel the nodesWereInserted(...) method needs to be called. For example, if I change your last three methods to this
public void valueChanged(TreeSelectionEvent e) {
insertNode((JTree) e.getSource(),
(MutableTreeNode) e.getPath().getLastPathComponent());
public void treeCollapsed(TreeExpansionEvent event) {
insertNode((JTree) event.getSource(),
(MutableTreeNode) event.getPath().getLastPathComponent());
public void treeExpanded(final TreeExpansionEvent event) {
insertNode((JTree) event.getSource(),
(MutableTreeNode) event.getPath().getLastPathComponent());
public void insertNode(JTree tree, MutableTreeNode parent) {
Date date = new Date();
MutableTreeNode child = new DefaultMutableTreeNode(date.toString());
int index = parent.getChildCount();
parent.insert(child,index);
((DefaultTreeModel) tree.getModel())
.nodesWereInserted(parent,new int[]{index});
}then it works as you desire. You can (and should) of course use the DefaultTreeModel's own insert method.
DefaultTreeModel#insertNodeInto(MutableTreeNode,MutableTreeNode, int) -
MDX query for parent-child combination display
Hi guys..
I am really new to the Essbase technology.
Could you please help me out with this one:
is it possible to extract the data(for example the metadata of a outline)..eg:-
The outline structure is as follows :
A1
A11
A12
A2
A21
A22
I want a MDX query to display it as :
A1 A11
A1 A12
A2 A21
A2 A22
I have tried various ways but couldnt come up with a query for this.
Thanks in advance for all your help.Unfortunately MDX cannot do this. If you think about what you are asking for, you are essentially saying that you want to see members of the same dimension on different axis. Multi-dimensional queries can't do that (think about trying to do it with addin).
A further limiation is that MDX is not robust enough to allow you to work the results into a single axis using a concatenation function because while there is a string-to-member function, there is no member-to-string function and concat requires a string as input.
Other approaches would require MDX to support joins or subqueries, which it does not.
As others have mentioned, to do what you want to do, you need outline extractor or something like that.
*Fun fact - if you have OBIEE 11g, it can do reporting in Essbase with hierarchy members in hierarchy format or column format, which will give you the results you need. That alone is good reason to start using OBIEE. -
Dear Friends,
This following query,if I will attach it at PO in Item Code with formatted search , I get result as BOM child items as per project code, here project code is similar to item code.
But my limitation is that my item code is more than 8 character ,under accounting TAB BP project ,project I can define it up to 8 character only.
My requirement is that if I will put project name (which is 30 characteristic) as like as item code , shall I get child item list.
If yes , suggest necessary changes in above query.
Query :
WITH RECUR ( CODE) AS
SELECT ITT1.CODE FROM ITT1 INNER JOIN OITT ON OITT.Code=ITT1.Father WHERE ITT1.Father=$[$157.1.1]
UNION ALL
SELECT ITT1.CODE
FROM ITT1 INNER JOIN OITT ON OITT.Code=ITT1.Father
INNER JOIN RECUR ON RECUR.CODE =ITT1.Father
SELECT CODE FROM RECUR inner join OITM on OITM.ItemCode=RECUR.CODE --and OITM.PlaningSys='M' and OITM.PrcrmntMtd='B'
Thanxs & regards
Mahesh.Dear Mahesh,
I am not sure about your aim.
You would like to put a formatted search in the project code field of the sales order in order to get the children of the itemcode of that line in the document. The child codes will become the name of the project.
Your issue is the following:
As the project code field in the sales order (field called: rdr1, project) is long 8 characters only and the sum of the children codes will be too long for this field.
Am I correct?
If I am not correct, can you please tell me step by step what you are trying to do?
Thank you.
Marcella Rivi
SAP Business One Forums Team -
How to make multiple repeating pages for XML child nodes
I have a schema that has many levels, and I am trying to have some of the child data print on separate pages.
<As>
<A id=1>
<Bs>
<B id=1 name="B1">
<Cs>
<C id=1 name="B1C1" />
<C id=2 name="B1C2" />
<C id=3 name="B1C3" />
</Cs>
</B>
<B id=2 name="B2">
<Cs>
<C id=1 name="B2C1" />
<C id=2 name="B2C2" />
<C id=3 name="B2C3" />
</Cs>
</B>
<Bs>
</A>
<As>
I want to place the data from A and B on page 1 (A is header fields and B is a table showing B1, B2 etc), and then per B, place data from C items on their own pages (repeat as necessary).
So the page output would be:
Page 1
A:1 (header items)
B table
B1
B2
Page 2
A:1 (header items)
B id: 1
C data for B1C1
Page 3
A:1 (header items)
B id: 1
C data for B1C2
Page 4
A:1 (header items)
B id: 1
C data for B1C3
Page 5
A:1 (header items)
B id: 2
C data for B2C1
Page 6
A:1 (header items)
B id: 2
C data for B2C2
Page 7
A:1 (header items)
B id: 2
C data for B2C3
Page 8
A:2 (header items)
etc.
I am hoping that with this quick sketch someone can tell me how to accomplish the placement of the C items.For the time being, I can only respond to Pages for iOS. OS X I'll need to check when I get home (or perhaps someone else will beat me to it). You may wish to post in the Pages for Mac forum for better exposure.
In Pages for iOS you are limited to a single header and footer. There is no Section structure so no way to do different headers/Footers for different pages (as you can do in MS word for example). To modify the Header and insert the text you want: Tap the Tools icon (wrench in upper right), then Document Set up. Tap in the header field, then tap and hold to use the menu to insert pages numbers, then type the text you need.
Quite possibly. Check the app store. Or you may be able to set this up in Pages for OS X and import it into Pages on the iPad. I'm not certain the sections will import however.
Also consider using a different app, such as word for iOS or any of the numerous other word processing apps available. -
SQL query for join table and multiple values
Trying to join two tables , Emphours and EmpStatus to get
result which gives each emplyees hour
worked each day
in past say 1 year in what status. I need result similar to table 3 , Hours Can also be grouped per week
all I need Is Each employees hours in each week and his status and position at that time if possible
any help will be highly appreciated. Thank you
note: payday is every other Friday- week runs from Saturday through Friday
EmpStatus Table tracks when employees status changed
EmpHours
employee
workday
payday
hours
position
101
1/1/2014
1/3/2014
8
assistant
101
1/3/2014
1/3/2014
8
assistant
101
1/4/2014
1/17/2014
8
assistant
101
1/5/2014
1/17/2014
8
assistant
101
1/7/2014
1/17/2014
8
assistant
101
1/8/2014
1/17/2014
8
assistant
101
1/9/2014
1/17/2014
8
assistant
101
1/11/2014
1/17/2014
8
assistant
101
1/13/2014
1/17/2014
8
assistant
101
1/14/2014
1/17/2014
8
assistant
101
1/18/2014
2/14/2014
8
assistant
102
1/1/2014
1/3/2014
7
manager
102
1/25/2014
1/31/2014
7
manager
102
1/26/2014
1/31/2014
7
manager
102
1/28/2014
1/31/2014
7
manager
102
1/31/2014
1/31/2014
7
manager
103
1/1/2014
1/3/2014
5
intern
103
1/31/2014
1/31/2014
6
intern
104
1/14/2014
1/17/2014
5
supervisor
104
1/30/2014
1/31/2014
6
supervisor
EmpStatus
employee
start_date
status
101
1/1/2014
parttime
101
1/18/2014
fulltime
102
1/1/2014
seasonal
102
1/18/2014
fulltime
103
1/1/2014
partime
103
1/18/2014
fulltime
104
1/4/2014
parttime
104
1/18/2014
fulltime
Table 3
employee
status
hours
position
workday
weekend
payday
101
parttime
8
assistant
1/1/2014
1/3/2014
1/3/2014
101
parttime
8
assistant
1/3/2014
1/3/2014
1/3/2014
101
parttime
8
assistant
1/4/2014
1/10/2014
1/17/2014
101
parttime
8
assistant
1/5/2014
1/10/2014
1/17/2014
101
parttime
8
assistant
1/7/2014
1/10/2014
1/17/2014
101
parttime
8
assistant
1/8/2014
1/10/2014
1/17/2014
101
parttime
8
assistant
1/9/2014
1/10/2014
1/17/2014
101
parttime
8
assistant
1/11/2014
1/17/2014
1/17/2014
101
parttime
8
assistant
1/13/2014
1/17/2014
1/17/2014
101
parttime
8
assistant
1/14/2014
1/17/2014
1/17/2014
101
fulltime
8
assistant
1/18/2014
1/24/2014
2/14/2014
102
seasonal
7
manager
1/1/2014
1/3/2014
1/3/2014
102
fulltime
7
manager
1/25/2014
1/25/2014
2/14/2014
102
fulltime
7
manager
1/26/2014
1/26/2014
2/14/2014
102
fulltime
7
manager
1/28/2014
1/28/2014
2/14/2014
102
fulltime
7
manager
1/31/2014
1/31/2014
2/14/2014
103
parttime
5
intern
1/1/2014
1/3/2014
1/3/2014
103
fulltime
6
intern
1/31/2014
1/31/2014
2/14/2014
104
parttime
5
supervisor
1/14/2014
1/17/2014
1/17/2014
104
fulltime
6
supervisor
1/30/2014
1/31/2014
1/31/2014Hello David,
Try this query
set dateformat mdy;
declare @EmpHours table
(Employee int,workday date,payday date,hours int,position varchar(50));
insert into @EmpHours values
(101,'1/1/2014','1/3/2014',8,'assistant'),
(101,'1/3/2014','1/3/2014',8,'assistant'),
(101,'1/4/2014','1/17/2014',8,'assistant'),
(101,'1/5/2014','1/17/2014',8,'assistant'),
(101,'1/7/2014','1/17/2014',8,'assistant'),
(101,'1/8/2014','1/17/2014',8,'assistant'),
(101,'1/9/2014','1/17/2014',8,'assistant'),
(101,'1/11/2014','1/17/2014',8,'assistant'),
(101,'1/13/2014','1/17/2014',8,'assistant'),
(101,'1/14/2014','1/17/2014',8,'assistant'),
(101,'1/18/2014','2/14/2014',8,'assistant'),
(102,'1/1/2014','1/3/2014',7,'manager'),
(102,'1/25/2014','1/31/2014',7,'manager'),
(102,'1/26/2014','1/31/2014',7,'manager'),
(102,'1/28/2014','1/31/2014',7,'manager'),
(102,'1/31/2014','1/31/2014',7,'manager'),
(103,'1/1/2014','1/3/2014',5,'intern'),
(103,'1/31/2014','1/31/2014',6,'intern'),
(104,'1/14/2014','1/17/2014',5,'supervisor'),
(104,'1/30/2014','1/31/2014',6,'supervisor');
--select * from @EmpHours
declare @EmpStatus table
(employee int,start_date date,status varchar(20));
insert into @EmpStatus values
(101,'1/1/2014','parttime'),
(101,'1/18/2014','fulltime'),
(102,'1/1/2014','seasonal'),
(102,'1/18/2014','fulltime'),
(103,'1/1/2014','partime'),
(103,'1/18/2014','fulltime'),
(104,'1/4/2014','parttime'),
(104,'1/18/2014','fulltime');
WITH C AS
SELECT es.employee,es.start_date, es.status, ROW_NUMBER() OVER(partition by employee ORDER BY start_date) AS rownum
FROM @EmpStatus ES
CTE_RANGES as(
SELECT cur.employee,Cur.start_date start_range, cur.status,case when nxt.start_date is null then '2099-12-31' else dateadd(d,-1,Nxt.start_date) end AS end_range
FROM C AS Cur
left JOIN C AS Nxt
ON Nxt.rownum = Cur.rownum + 1 and cur.employee=nxt.employee)
select eh.*,es.status from @EmpHours EH join CTE_RANGES Es on EH.Employee =es.employee and EH.workday between es.start_range and es.end_range
--where es.employee=101
You will need a calender table too which can be joined to the output of the above query to get the weekend dates.
You can find the T-SQL code to generate the calender here
http://stackoverflow.com/questions/19191577/t-sql-function-to-generate-calendar-table
and posting the questions with necessary DDL , DML (like I have posted) would help us a lot.
Satheesh
My Blog -
Help with xsl for multiple child node
We have the following data.
row meID EI
1 a a1
a2
a3
a4
2 b b1
b2
3 c c1
c2
I would like to use XSL to display the data in the fashion:
<row=1>
<meID>a</meID>
<EI>a1</EI>
<EI>a2</EI>
<EI>a3</EI>
<EI>a4</EI>
</row>
<row=2>
<meID>b</meID>
<EI>b1</EI>
<EI>b2</EI>
</row>
<row=3>
<meID>c</meID>
<EI>c1</EI>
<EI>c2</EI>
</row>
Currently, I am only able to get the XSL to lump all the EIs together:
<row=1>
<meID>a</meID>
<EI>a1a2a3a4</EI>
</row>
What do I need to change in the XSL to make it display 4 rows of EI?
Thanks.The data should look like:
1_________a_________a1
____________________a2
____________________a3
____________________a4
2_________b_________b1
____________________b2
3_________c_________c1
____________________c2 -
Delete a node containing a child node with specific value
Hello,
I wanted to know how to delete a node which contains specific value in one of its child node.
Here is the xml file
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<ROW>
<part_num_ref ID="100124">1</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">2</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">3</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">4</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">5</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">6</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">7</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">8</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">9</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">10</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">11</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">12</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">13</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">14</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">15</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">16</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
<ROW>
<part_num_ref ID="100124">17</part_num_ref>
<part_sht_nam_ref ID="100125">0</part_sht_nam_ref>
<part_country ID="100026">0</part_country>
<tot_cost__rtd ID="102281">0</tot_cost__rtd>
<tot_cost__demo ID="102282">0</tot_cost__demo>
<tot_cost__tra ID="102283">0</tot_cost__tra>
<tot_cost__coor ID="102284">0</tot_cost__coor>
<tot_cost__sprt ID="102285">0</tot_cost__sprt>
<tot_cost__mng ID="102286">0</tot_cost__mng>
<tot_cost__oth ID="102287">0</tot_cost__oth>
<tot_cost ID="100135">0</tot_cost>
<tot_rcpt ID="102016">0</tot_rcpt>
<tot_grant ID="100136">0</tot_grant>
</ROW>
</rows>
I would like to delete one of the node <ROW> which contains the value 1 for the child node <part_num_ref >
Is it possible?
Thanks in advance for your answers.
Regards,
Stessy DelcroixThe following is a possibility on database version 10.2.x (what database version are you using?):
Example from XMLDB Developers Guide 10.2
Example 4-26 Deleting LineItem Element Number 222
SELECT extract(OBJECT_VALUE,
'/PurchaseOrder/LineItems/LineItem[@ItemNumber="222"]')
FROM purchaseorder
WHERE existsNode(OBJECT_VALUE,
'/PurchaseOrder[Reference="AMCEWEN-20021009123336171PDT"]')
= 1;
EXTRACT(OBJECT_VALUE,'/PURCHASEORDER/LINEITEMS/LINEITEM[@ITEMNUMBER="222"]')
<LineItem ItemNumber="222">
<Description>The Harder They Come</Description>
<Part Id="953562951413" UnitPrice="22.95" Quantity="1"/>
</LineItem>
1 row selected.
UPDATE purchaseorder
SET OBJECT_VALUE =
deleteXML(OBJECT_VALUE,
'/PurchaseOrder/LineItems/LineItem[@ItemNumber="222"]')
WHERE existsNode(OBJECT_VALUE,
'/PurchaseOrder[Reference="AMCEWEN-20021009123336171PDT"]')
= 1;
SELECT extract(OBJECT_VALUE,
'/PurchaseOrder/LineItems/LineItem[@ItemNumber="222"]')
FROM purchaseorder
WHERE existsNode(OBJECT_VALUE,
'/PurchaseOrder[Reference="AMCEWEN-20021009123336171PDT"]')
= 1;
EXTRACT(OBJECT_VALUE,'/PURCHASEORDER/LINEITEMS/LINEITEM[@ITEMNUMBER="222"]')
1 row selected. -
HOw to get parent node name value through its child node?
Hi,
Experts,
I am able to get child node name values but according to attribute name value i want to get its parent name value how to achieve that. For that i have used If_Ixml_element->Get_parent. Please pass some idea on it.
Thanks in advance,
Shabeer ahmed.Hello Shabeer
I think the coding should be straightforward:
DATA: lo_element TYPE REF TO if_ixml_element,
lo_child TYPE REF TO if_ixml_node,
lo_parent TYPE REF TO if_ixml_node.
" NOTE: LO_ELEMENT holds your child node
lo_child ?= lo_element.
lo_parent = lo_child->get_parent( ).
Regards
Uwe -
How to assign ALV for parent node and child node that uses supply method.?
HI Dear friends,
I need to display header details ( VBAK ) and Item details ( VBAP ). I have created two node like HEADER_NODE inside this i have created ITEM_NODE for this item node i use supply function 'GET_ITEMS' any way it is working only when crete two separate table and binding but when i come to work with ALV i am totally confused .. i have created two 'View Controller UI Elements' when i try to map HEADER_NODE it mapped properly but for ITEM_NODE it shows mapping already defined. return status message as 'Action Cancelled' . In result both ViewContainer shows only HEADER_NODE data only.
How to achive ALV for Parent, child node that uses supply function ? ?
Thank youDelete Mapping is not enabled, that means there is no mapping done yet.
I just tried what you are saying and the application works and i am able to map the header table and item table and also again i could map the tables any number of times.. i didn't get any such message, sorry i couldn't recreate the scenario. might be there is something wrong in the context.
i just did it like this.
Please also move this to Web DynPro Discussion, Hope that would be helpful.
Message was edited by: Syed Ghulam Ali -
Warning 6226: Ignoring value requested for first connection attribute 'TempSize'
Hi
Was trying to load, here is what I see. Appreciate your help.
con1: Command> load cache group g_sdata_awt commit every 1000 rows;
5056: The cache operation fails: error_type=<TimesTen Error>, error_code=<3407>, error_message: [TimesTen]TT3407: Cannot allocate space to store ownership information for global cache groups because temporary data partition free space is below the minimum threshold of 3000000 bytes - from grid member DDGRID_DD_TTDB_1
The command failed.
con1: Command>
[timesten@timesten101 info]$ ttisql -connstr "dsn=DD_TTDB;tempsize=4096";
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "dsn=DD_TTDB;tempsize=4096";
Warning 6226: Ignoring value requested for first connection attribute 'TempSize' -- value currently in use: 32, requested value: 4096
Connection successful: DSN=DD_TTDB;UID=timesten;DataStore=/home/timesten/TimesTen/ttdev/DD_TTDB;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;DRIVER=/home/timesten/TimesTen/ttdev/lib/libtten.so;LogDir=/home/timesten/TimesTen/ttdev/logs/DD_TTDB;PermSize=8196;TempSize=4096;TypeMode=0;OracleNetServiceName=VIS1;
(Default setting AutoCommit=1)
Command>
I tried :
HOWTO : Understand Modifying TimesTen PermSize And TempSize First Connect Database Attributes (Doc ID 1081008.1)
It did not help! Thanks a lot.
AnilHi Chris, Thanks a lot again! I guess I followed the steps.
Sorry in a rush to get this done, not able to read all the docs.
Still getting the error, can you please point to me where I am going wrong:
Sorry for being childish pest here, tried it hard but couldnt get too far.
[timesten@timesten101 ~]$ ttadmin -rampolicy manual DD_ttdb
RAM Residence Policy : manual
Manually Loaded In RAM : False
Replication Agent Policy : manual
Replication Manually Started : False
Cache Agent Policy : manual
Cache Agent Manually Started : False
[timesten@timesten101 ~]$ ttdaemonadmin -stop;
TimesTen Daemon stopped.
[timesten@timesten101 ~]$ ttdaemonadmin -start;
TimesTen Daemon startup OK.
[timesten@timesten101 ~]$ ttstatus;
TimesTen status report as of Mon Feb 10 08:47:28 2014
Daemon pid 19519 port 53396 instance ttdev
TimesTen server pid 19528 started on port 53397
Data store /home/timesten/TimesTen/ttdev/DD_TTDB
There are no connections to the data store
RAM residence policy: Manual
Data store is manually unloaded from RAM
Replication policy : Manual
Cache Agent policy : Manual
PL/SQL enabled.
Accessible by group ttadmin
End of report
[timesten@timesten101 ~]$
[timesten@timesten101 ~]$ ttadmin -rampolicy inuse DD_ttdb
RAM Residence Policy : inUse
Replication Agent Policy : manual
Replication Manually Started : False
Cache Agent Policy : manual
Cache Agent Manually Started : False
[timesten@timesten101 ~]$ ttstatus
TimesTen status report as of Mon Feb 10 08:47:59 2014
Daemon pid 19519 port 53396 instance ttdev
TimesTen server pid 19528 started on port 53397
Data store /home/timesten/TimesTen/ttdev/DD_TTDB
There are no connections to the data store
Replication policy : Manual
Cache Agent policy : Manual
PL/SQL enabled.
Accessible by group ttadmin
End of report
[timesten@timesten101 ~]$ ttisql -connstr "dsn=DD_TTDB;uid=cacheadm;pwd=cacheadm;oraclepwd=cacheadm";
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "dsn=DD_TTDB;uid=cacheadm;pwd=cacheadm;oraclepwd=cacheadm";
15019: Only the instance admin may alter the TempSize attribute
The command failed.
Done.
[timesten@timesten101 ~]$
Maybe you are looking for
-
Hello All, There is a problem, I am facing with my custom page. I am trying to extend the controller with my custom class, but getting the below error oracle.apps.fnd.framework.OAException: Could not create Java class: (oracle.apps.xxar.cusstd.create
-
Help! Trouble Rendering 16:9 footage in AE, and playing it in Premiere Pro!
I have two issues: #1. I've spent hours searching for a solution to this dilemma, and I've only managed to come across "similar" problems other people have been having... However, I still cannot fix my problem. Basically, I've been editing some foota
-
i'm new to java mail api i'm using a machine which is in a network under a proxy server and a fire wall.our network has a smtp server. i tried to send a amil using a smtp server. my codes are package mailtest; import java.util.Properties; import java
-
Milestone tracking from vendor side
Hi, Can someone tell me what is "Milestone tracking from vendor side" with respect to SRM 5.0. Any information on this is appreciated. Regards, Sonali
-
Hi Guys, I'm trying to update 2 or more sales orders by using just one call to FM CRM_ORDER_MAINTAIN. Is this possible? I've also tried BAPI_SLSTRANSACT_CHANGEMULTI but I think I'm not passing the correct relations between tables. The requierement is