Read XML response with multiple root elements
Hi ,
I am trying to achieve the below scenario but unable to do so.Please help urgently.
I am getting a response from a service which has multiple root elements.these root elements can change at runtime..I need to read the different root elements and extract data from its sub elements.
Regards...
Hoping for an anwser..
i assume on runtime the service just returns 1 rootnode, but this rootnode can change
you could use a switch after the invoke
if $response/myroot1
assign $response/myroot to myroot1_var
if $response/myroot2
assign $response/myroot to myroot2_var
etc
so you check what's in the root node before you assign to you temp variable
or if you have logic which is specific based on this root nod you can just implement all these branches in the switch and execute logic in there based on the selected rootnode
several implementations are possible
Similar Messages
-
Multiple Root elements in the XSD Schema
Hi Dear MDM gurus,
I have manually created an XSD Schema and I can import it in the Syndicator without any problem.
I have 3 different Root elements in the schema that I want to use and map to the corresponding table of this type.
In my Syndicator screen in the Rood dropdown box I can see all three of the Root elements that I have in the schema.
If I select the first Root element - everything goes fine and I can do my mapping, save the map, etc.
The problem is that if I select the second or third root element to do the mapping for them, the syndicator does not show the structure in the Item Mapping after that.
I tried moving the Second root element of the schema and make it first and it works with it, but then the other two are not appearing and I have the same issue.
Does MDM support only one Root element in the Schema? If that's the case, why does it show all three of them in the dropdown?
Here is an example:
1. If I have them in this order in my XSD
<xs:element name="ManufacturerGroupNumber" type="ManufacturerGroupNumbers"/>
<xs:element name="SupplierGroupNumber" type="SupplierGroupNumbers"/>
<xs:element name="SupplierLocationNumber" type="Suppliers"/>
I can only see the structure when I select the "ManufacturerGroupNumber".
2. If I have them in the Schema in this order
<xs:element name="SupplierLocationNumber" type="Suppliers"/>
<xs:element name="SupplierGroupNumber" type="SupplierGroupNumbers"/>
<xs:element name="ManufacturerGroupNumber" type="ManufacturerGroupNumbers"/>
I can only see the structure when I select the first one again "SupplierLocationNumber" and I can only do the mapping for it.
Any help would be appreciated.
Thanks in advance,
BorisHello Satish,
Thank you for your quick response.
I read some of the architectural approaches and XML specifications and depending on your design, you may have only one Root element or in rare cases Several Root elements. In my case, I was advised by our PI experts to use Multiple Root elements and this gives me the following:
Advantages:
u2022 The reusability of the schema definition is available for all types and all elements defined in the global namespace.
Disadvantages:
u2022 Since there are many global elements, there are many valid XML documents.
I initially had the schema as you suggested, but they didn't like it in PI and advised me to change it with having multiple roots.
What I'm trying to figure out is if there is a bug in MDM that does not allow to use the rest of the root elements, so I can open an OSS message.
Thanks,
Boris -
Org.xml.sax.SAXParseException: Document root element is missing.
Hi,
I am trying to get the portal login id from a weblogic server based application from iplaet portal server.
I get this follwoing error
org.xml.sax.SAXParseException: Document root element is missing.
at com.sun.xml.parser.Parser.fatal(Parser.java:2817)
at com.sun.xml.parser.Parser.fatal(Parser.java:2805)
at com.sun.xml.parser.Parser.parseInternal(Parser.java:493)
at com.sun.xml.parser.Parser.parse(Parser.java:284)
at com.sun.xml.tree.XmlDocument.createXmlDocument(XmlDocument.java:226)
at com.iplanet.portalserver.util.XMLParser.<init>(XMLParser.java:70)
at com.iplanet.portalserver.naming.share.NamingResponseParser.<init>(NamingResponseParser.java:33)
at com.iplanet.portalserver.naming.share.NamingResponse.parseXML(NamingResponse.java:74)
at com.iplanet.portalserver.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:174)
at com.iplanet.portalserver.naming.WebtopNaming.getNamingProfile(WebtopNaming.java:155)
at com.iplanet.portalserver.naming.WebtopNaming.getServiceURL(WebtopNaming.java:57)
at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:534)
at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:520)
at com.iplanet.portalserver.session.Session.getSession(Session.java:414)
at jsp_servlet.__eatonPortalLogin._jspService(__eatonPortalLogin.java:155)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1075)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:418)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:462)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5517)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:685)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3156)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2506)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
<May 19, 2004 9:01:12 AM EDT> <Error> <HTTP> <101017> <[ServletContext(id=4873279,name=ematrix,context-path=/ematrix)] Root cause of ServletException
com.iplanet.portalserver.session.SessionException
at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:539)
at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:520)
at com.iplanet.portalserver.session.Session.getSession(Session.java:414)
at jsp_servlet.__eatonPortalLogin._jspService(__eatonPortalLogin.java:155)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1075)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:418)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:462)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5517)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:685)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3156)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2506)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
Any help/pointers will be appreciated.
AshishJust for anyone else who hits this problem: I encountered the same issue with an XML document that XMLSpy claims is quite well formed. I opened the document in a hex editor, and there at the from was a three-byte byte order marker - the marker that I believe the UTF-8 standard says is optional. I removed these three bytes, and the file was parsed correctly.
In this case, the XML file was created using a Microsft DOM (save).
My solution is to make the java parser - as I use it - a tad more robust: Open the file and create an input stream - a pushback input stream. Read the first three bytes; if they are NOT a BOM, then push those bytes back. Now - in any case - give the stream to the parser to read.
try {
// Open file for reading.
f = new File(path);
FileInputStream fis = new FileInputStream(f);
PushbackInputStream pis = new PushbackInputStream(fis);
byte[] buf = new byte[3];
pis.read(buf, 0, 3);
if (! (buf[0] == 0x00EF) && (buf[1] == 0x00BB) && (buf[2] == 0x00BF) ) {
pis.unread(buf, 0, 3);
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
doc = builder.parse(pis);
catch (Exception x) {
x.printStackTrace();
} -
"detected a page fragment with multiple root components" warning
I am getting a warning on the standalone WLS when I run my page that contains a taskflow as region. I am using a page fragment in my taskflow.
<Warning> <oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer> <ADF_FACES-60099> <The region component with id: ptMain:r1 has detected a page fragment with multiple root components. Fragments with more than one root component may not display correctly in a region and may have a negative impact on performance. It is recommended that you restructure the page fragment to have a single root component.>
The warning states the obvious, I have everything within a panelheader in my page fragment. Also, I do not get the warning on the integrated WLS. Any ideas as to why this warning is still popping up in the log? I am using JDev 11.1.1.3.
Thanks,
JessicaThank you for responding. I do not have any popups. I do, however, have another region nested within this fragment ( have this warning on another fragment that doesn't have a nested region though). Here is the code for my fragment.
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:f="http://java.sun.com/jsf/core">
<af:panelHeader text="Pawn"
binding="#{backingBeanScope.backing_Fragments_PawnSearch.ph1}"
id="ph1" type="default">
<af:panelFormLayout id="pfl2">
<af:panelSplitter binding="#{backingBeanScope.backing_Fragments_PawnSearch.ps1}"
id="ps1" orientation="vertical" splitterPosition="62"
inlineStyle="width:775px; height:660px;">
<f:facet name="first">
<af:panelBox text="Search #{bindings.agency.inputValue} Data to Update"
binding="#{backingBeanScope.backing_Fragments_PawnSearch.pb1}"
id="pb1">
<f:facet name="toolbar"/>
<af:panelGroupLayout id="pgl3" layout="horizontal">
<af:inputText value="#{bindings.control_number.inputValue}"
label="Control Number" required="true"
columns="#{bindings.control_number.hints.displayWidth}"
maximumLength="#{bindings.control_number.hints.precision}"
shortDesc="#{bindings.control_number.hints.tooltip}"
id="it1">
<f:validator binding="#{bindings.control_number.validator}"/>
</af:inputText>
<af:inputDate value="#{bindings.trans_date.inputValue}"
label="Date" required="true"
shortDesc="#{bindings.trans_date.hints.tooltip}"
id="id1">
<f:validator binding="#{bindings.trans_date.validator}"/>
<af:convertDateTime pattern="#{bindings.trans_date.format}"/>
</af:inputDate>
<af:inputText value="#{bindings.agency.inputValue}" simple="true"
required="#{bindings.agency.hints.mandatory}"
columns="#{bindings.agency.hints.displayWidth}"
maximumLength="#{bindings.agency.hints.precision}"
shortDesc="#{bindings.agency.hints.tooltip}"
binding="#{backingBeanScope.backing_Fragments_PawnSearch.it2}"
id="it2" visible="false">
<f:validator binding="#{bindings.agency.validator}"/>
</af:inputText>
<af:commandButton actionListener="#{bindings.ExecuteWithParams.execute}"
text="Search"
disabled="#{!bindings.ExecuteWithParams.enabled}"
id="cb5"
returnListener="#{backingBeanScope.backing_Fragments_PawnSearch.refreshPage}"
action="#{backingBeanScope.backing_Fragments_PawnSearch.RenderMe}">
<af:setActionListener from="#{bindings.PawnItemView1Iterator.currentRowKeyString}"
to="#{requestScope.pawnkey}"/>
</af:commandButton>
<af:spacer width="10" height="10"
binding="#{backingBeanScope.backing_Fragments_PawnSearch.s1}"
id="s1"/>
<af:goButton text="Clear Values and Create New" id="gb1"
destination="index.jspx"
rendered="#{backingBeanScope.backing_Fragments_PawnSearch.saveButtonRendered}"/>
</af:panelGroupLayout>
</af:panelBox>
</f:facet>
<f:facet name="second">
<af:panelGroupLayout binding="#{backingBeanScope.backing_Fragments_PawnSearch.pgl4}"
id="pgl4" layout="scroll" partialTriggers=""
visible="true">
<af:panelGroupLayout binding="#{backingBeanScope.backing_Fragments_PawnSearch.pgl6}"
id="pgl6" inlineStyle="width:775px;"
visible="#{backingBeanScope.backing_Fragments_PawnSearch.renderTF}">
<af:region value="#{bindings.PawnEntryFormTF1.regionModel}"
id="r1" inlineStyle="width:750px;"/>
</af:panelGroupLayout>
<af:panelGroupLayout binding="#{backingBeanScope.backing_Fragments_PawnSearch.pgl5}"
id="pgl5" layout="horizontal"
visible="#{backingBeanScope.backing_Fragments_PawnSearch.renderMessage}">
<af:outputFormatted value="No #{bindings.agency.inputValue} Pawn data matching the Control Number and Transaction Date from above."
binding="#{backingBeanScope.backing_Fragments_PawnSearch.of1}"
id="of1"
inlineStyle="font-weight:bolder; font-size:small;"/>
<af:spacer width="10" height="10"
binding="#{backingBeanScope.backing_Fragments_PawnSearch.s2}"
id="s2"/>
<af:goButton text="Clear Search and Start Again"
binding="#{backingBeanScope.backing_Fragments_PawnSearch.gb2}"
id="gb2" destination="index.jspx"/>
</af:panelGroupLayout>
</af:panelGroupLayout>
</f:facet>
</af:panelSplitter>
</af:panelFormLayout>
</af:panelHeader>
<!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_Fragments_PawnSearch-->
</jsp:root> -
hi
using tomcat 4
and jdf1.5
i am getting bellow error
org.xml.sax.SAXParseException: Document root element "taglib", must match DOCTYPE root "null".Check your web.xml once again.
-
Hi,
I am using JDEV 11.1.2.1.0
I am getting the following error :-
<RegionRenderer> <encodeAll> The region component with id: pt1:r1 has detected a page fragment with multiple root components. Fragments with more than one root component may not display correctly in a region and may have a negative impact on performance. It is recommended that you restructure the page fragment to have a single root component.
Piece of code is for region is:-
<f:facet name="second">
<af:panelStretchLayout id="pa1"
binding="#{backingBeanScope.Assign.pa1}">
<f:facet name="center">
<af:region value="#{bindings.tfdAssignGraph1.regionModel}" id="r1"
binding="#{backingBeanScope.Assign.r1}"/>
</f:facet>
</af:panelStretchLayout>
</f:facet>
How do I resolve it ?
Thanks,Hi,
I see at least 3 errors
1. <RegionRenderer> <encodeAll> The region component with id: pt1:r1 has detected a page fragment with multiple root components.
the page fragment should only have a single component under the jsp:root tag. If you see more than one, wrap them in e.g. an af:panelGroupLayout or af:group component
2. SAPFunction.jspx/.xml" has an invalid character ".".
check the document (you can open it in JDeveloper if the customization was a seeded one. Seems that editing this file smething has gone bad
3. The expression "#{bindings..regionModel}" (that was specified for the RegionModel "value" attribute of the region component with id "pePanel") evaluated to null.
"pageeditorpanel" does seem to be missing in the PageDef file of the page holding the region
Frank -
Loading xml file with multiple rows
I am loading data from xml files using xsl for transformation. I have created xsl's and loaded some of the data. In an xml file with multiple row, it's only loading one (the first) row. Any idea how I can get it to read and load all the records in the file???
Could some please help me with the above. I desparately need to move forward.
-
I got an application running on Sun ONE Web Server 6.1SP5, during the application start, I got the following message. The application can run without any problem. I would like to know if there is any solution to avoid the PARSE error? Thanks a lot.
[01/Aug/2006:11:42:09] info (21921): CORE1116: Sun ONE Web Server 6.1SP5 B08/18/2005 02:17
[01/Aug/2006:11:42:09] info (21923): CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_04] from [Sun Microsystems Inc.]
[01/Aug/2006:11:42:09] info (21923): WEB0100: Loading web module in virtual server [https-sunfire] at [myapp]
[01/Aug/2006:11:42:09] info (21923): WEB0100: Loading web module in virtual server [https-sunfire] at [search]
[01/Aug/2006:11:42:13] info (21923): CORE3282: stdout: PARSE error at line 6 column 19
[01/Aug/2006:11:42:13] info (21923): CORE3282: stdout: org.xml.sax.SAXParseException: Document root element "taglib", must match DOCTYPE root "null".
[01/Aug/2006:11:42:13] info (21923): WEB2798: [myapp] ServletContext.log(): Loading Spring root WebApplicationContext
[01/Aug/2006:11:42:18] info (21923): WEB2798: [myapp] ServletContext.log(): Loading WebApplicationContext for Spring FrameworkServlet 'action'
[01/Aug/2006:11:42:18] info (21923): HTTP3072: [LS ls1] http://sunfire:9999 ready to accept requests
[01/Aug/2006:11:42:18] info (21923): CORE3274: successful server startupThat doesn't say much. Which is this xml file? and what have you given in the <!DOCTYPE > tag? Probably, that is the mistake...
-
Error in WebServices Consumption - There are multiple root elements
hi,
I am working on consuming webservice which has a WSDL to get the RouteDetails with a structure like:
<Source>
<HouseNumber>1</HouseNumber>
<Street>XYZ</Street>
<City>Hyderabad</City>
<Country>India</Country>
<PostalCode>500018</PostalCode>
</Source>
<Destination>
<HouseNumber>2</HouseNumber>
<Street>X1Y1Z1</Street>
<City>Bangalore</City>
<Country>India</Country>
<PostalCode>500067</PostalCode>
</Destination>
When I am calling the method RouteDetails of the proxy I created, I am getting the error 'There are multiple root elements in line 1 column 178 and the column is indicating <HouseNumber> in <Destination> node.
Please let me know how to overcome this.
Thanks for the help
GithaIts now resolved. Thanks,
Githa -
MDS Customization Problem with multiple root components
Hello,
Oracle JDeveloper 11.1.1.5.0 and WebLogic Server Version: 10.3.5.0
I am using Oracle MDS Customization class with the following classes:
oracle.adf.view.rich.change.MDSDocumentChangeManager
org.apache.myfaces.trinidad.change.ChangeManager
org.apache.myfaces.trinidad.change.MoveChildComponentChange
Based on these classes I am moving UI components
<af:panelStretchLayout>
<f:facet name="center">
<af:region />
</f:facet>
</af:panelStretchLayout>
into another component thanks to the MDS.
Once I do the movement and persist, I receive the following waning message:
*<RegionRenderer> <encodeAll> The region component with id: pt1:r1:0:pt2:r1:0:r1 has detected a page fragment with multiple root components. Fragments with more than one root component may not display correctly in a region and may have a negative impact on performance. It is recommended that you restructure the page fragment to have a single root component.*
When I run the application in Oracle JDeveloper 11.1.1.5.0, it work fine, but when I deploy it on WebLogic Server Version: 10.3.5.0 it is not working.
I receive the same warning message on the server and in JDeveloper.
I think that MDS makes a copy of the components that I move because of that it says me that "a page fragment with multiple root components"
The problem is not because of duplication any of the tags <af:document> <f:view><f:form> <html> <head> <body>
After the movement and persistence, I also call the FacesContext to reset its view root with the following code:
FacesContext context =FacesContext.getCurrentInstance();
String currentView = context.getViewRoot().getViewId();
ViewHandler vh = context.getApplication().getViewHandler();
UIViewRoot x = vh.createView(context, currentView);
x.setViewId(currentView);
context.setViewRoot(x);
The idea is that the entire JSF tree to be rebuild on entering page with aim to clear previously drag and drop settings.
Do you know how I can overcome the problem on the server WebLogic Server Version: 10.3.5.0?
This worked on Oracle JDeveloper 11.1.1.3.0 and now the problem is with Oracle JDeveloper 11.1.1.5.0.
Regards,
NikiHi,
what the error means is that you have more than one node under the jsp:root node of the fragment. Say the content of your fragment is
<af:panelGroupLayout id="pgl1">
</af:PanelGrouPLayout>
Then this is okay
if you have
<af:panelGroupLayout id="pgl1">
</af:PanelGrouPLayout>
<af:panelGroupLayout id="pgl2">
</af:PanelGrouPLayout>
or
<af:panelGroupLayout id="pgl1">
</af:PanelGrouPLayout>
<af:commandButton id="cb1"/>
Then these mean duplicated root components. The JDeveloper IDE flags this as Warnings (Structure Window) when selecting the page fragment
Frank -
PCO 2.1 Error : there are multiple root elements Line 6, position 2
HI all,
I am getting an error while adding Destination for Notification.
On the Destination Tab, I am able to create MII System as Destination. And expanding the newly created Destination, i can see a child node 'Destination'. While clicking on this child node, i am getting an error as "there are multiple root elements Line 6, position 2"
Can anybody please help.
Regards
MuzammilHi,
While configuring MII Server details, instead of IP address of MII server, we gave domain name and it started working.
Regards
Muzammil -
I have a question, but I posted it on the wrong forum. This is the link:
https://social.msdn.microsoft.com/Forums/en-US/899c8291-70f5-4c1b-abf2-a1a1242e017a/read-xml-file-with-counter?forum=visualstudiogeneral&prof=requiredHi,
I have created a program that read an xml file like this:
<xas>
<information>
<list>"12345"</list>
<version>1.0.0.1</version>
</information>
<word><n>0</n><v>test123v</v><a>test123a</a></word>
<word><n>1</n><v>testv</v><a>testa</a></word>
</xas>
I read it to a listview called listview1:
The MainWindow.xaml:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="" Height="1220" Width="1017" WindowStartupLocation="Manual" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True" UseLayoutRounding="False" WindowState="Maximized">
<Grid>
<ListView x:Name="ListView1" HorizontalAlignment="Left" Height="1220" VerticalAlignment="Top" Width="1017">
<ListView.View>
<GridView x:Name="Lijst">
<GridViewColumn x:Name="Vraag" Header="Vraag" DisplayMemberBinding="{Binding Vraag}">
</GridViewColumn>
<GridViewColumn x:Name="Antwoord" Header="Antwoord" DisplayMemberBinding="{Binding Antwoord}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
And this is MainWindow.xaml.vb:
Imports System.IO
Imports System.Reflection.Assembly
Imports System.Xml
Imports System.Data
Class MainWindow
Dim VraagListBox As New ListBox
Dim AntwoordListBox As New ListBox
Dim Hoofdmap As String = GetExecutingAssembly().Location
Dim Bestand As String
Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
'RUNNEN MAAR!!!!
'Het bestand vinden in de commandline argumenten
Dim args() As String = System.Environment.GetCommandLineArgs()
Dim Teller As Integer = "0"
For Each arg As String In args
If Teller = "1" Then
Bestand = arg
Else
Teller = Teller + "1"
End If
Next
Bestand = "D:\Alles voor school!\Alles voor school!\Vakken\Stepping Stones\DATA1\Hoofdstuk 1\Leerlijsten\Hoofdstuk 1 Grammer 1.xas"
'Welk bestand? Set de title
Me.Title = Path.GetFileName(Bestand) & " - ListViewer (V.1.0.0.6)"
If Bestand <> "" Then
'Vragen en antwoorden toevoegen in de kolommen
If Path.GetExtension(Bestand) = ".xas" Then
Dim orderInfo = XElement.Load(Bestand)
For Each entry As XElement In orderInfo...<word>
Dim thisOrder As New Order
With thisOrder
.Vraag = entry...<v>.Value
.Antwoord = entry...<a>.Value
End With
ListView1.Items.Add(thisOrder)
Next
'Virtuele vraaglistbox toevoegen = kolom Vraag van LisView1
Dim orderInfoVraag = XElement.Load(Bestand)
For Each entry As XElement In orderInfoVraag...<word>
Dim thisOrderVraag As New VraagClass
With thisOrderVraag
.Vraag = entry...<v>.Value
End With
VraagListBox.Items.Add(thisOrderVraag)
Next
'Virtuele antwoordlistbox toevoegen = kolom Antwoord van LisView1
Dim orderInfoAntwoord = XElement.Load(Bestand)
For Each entry As XElement In orderInfoAntwoord...<word>
Dim thisOrderAntwoord As New AntwoordClass
With thisOrderAntwoord
.Antwoord = entry...<a>.Value
End With
AntwoordListBox.Items.Add(thisOrderAntwoord)
Next
'Check wat er fout is aan het bestand, en geef een melding
Else
MessageBox.Show("Er is een verkeerde extentie geselecteerd, namelijk: " & Path.GetExtension(Bestand) & ".", "Verkeerde extentie - ListViewer", MessageBoxButton.OK, MessageBoxImage.Error)
Me.Close()
End If
Else
If Bestand = "" Then
MessageBox.Show("Je hebt geen bestand geselecteerd", "Geen bestand geselecteerd - ListViewer", MessageBoxButton.OK, MessageBoxImage.Error)
Me.Close()
Else
MessageBox.Show("Er is iets misgegaan met het laden van het bestand, probeer het later opnieuw", "Onbekende error - ListViewer", MessageBoxButton.OK, MessageBoxImage.Error)
Me.Close()
End If
End If
End Sub
Private Sub ListView1_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles ListView1.MouseDoubleClick
Directory.CreateDirectory(Path.GetTempPath & "110% Soft\ListViewer 1.0.0.6\" & Path.GetFileName(Bestand))
Dim SchrijfVraag As New StreamWriter(Path.GetTempPath & "110% Soft\ListViewer 1.0.0.6\Word.txt")
Dim SchrijfFile As New StreamWriter(Path.GetTempPath & "110% Soft\ListViewer 1.0.0.6\File.txt")
SchrijfVraag.WriteLine(ListView1.SelectedIndex)
SchrijfFile.WriteLine(Bestand)
SchrijfVraag.Close()
SchrijfFile.Close()
Dim WoordenScherm As ViewWord
WoordenScherm = New ViewWord()
WoordenScherm.ShowDialog()
End Sub
End Class
ViewWord.xaml is:
<Window x:Class="ViewWord"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ViewWord" Height="155" Width="1017" ResizeMode="NoResize" SizeToContent="WidthAndHeight" Topmost="True" WindowStartupLocation="CenterScreen">
<Grid>
<Label x:Name="VraagLabel" Content="Vraag:" HorizontalAlignment="Left" Margin="23,11,0,0" VerticalAlignment="Top" Width="106"/>
<TextBox x:Name="VraagTextBox" HorizontalAlignment="Left" Height="24" Margin="134,13,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="743" />
<Label x:Name="AntwoordLabel" Content="Antwoord:" HorizontalAlignment="Left" Margin="23,42,0,0" VerticalAlignment="Top" Width="106"/>
<TextBox x:Name="AntwoordTextBox" HorizontalAlignment="Left" Height="24" Margin="134,44,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="743"/>
<Button x:Name="VraagAanpassenButton" Content="Aanpassen" HorizontalAlignment="Left" Margin="882,15,0,0" VerticalAlignment="Top" Width="107"/>
<Button x:Name="AntwoordAanpassenButton" Content="Aanpassen" HorizontalAlignment="Left" Margin="882,44,0,0" VerticalAlignment="Top" Width="107"/>
<Label x:Name="VraagNummerLabel" Content="Vraagnummer:" HorizontalAlignment="Left" Margin="23,72,0,0" VerticalAlignment="Top" Width="106"/>
<TextBox x:Name="VraagNummerTextBox" HorizontalAlignment="Left" Height="24" Margin="134,74,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="743"/>
<Button x:Name="VraagNummerAanpassenButton" Content="Aanpassen" HorizontalAlignment="Left" Margin="882,74,0,0" VerticalAlignment="Top" Width="107"/>
</Grid>
</Window>
In VraagTextBox must come the entry <word><v>test123v</v></word>, in AntwoordTextBox must come the entry <word><a>test123a</a></word>, and in VraagNummerTextBox must come the entry <word><n>0</n></word>
This is the code to fix that (ViewWord.xaml.vb):
Imports System.IO
Public Class ViewWord
Private Structure AntwoordVraag
Public Vraag As String
Public Antwoord As String
End Structure
Private Sub ViewWord_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
End Sub
Private Sub AntwoordAanpassenButton_Click(sender As Object, e As RoutedEventArgs) Handles AntwoordAanpassenButton.Click
Dim Vraagnummer As String
Dim Bestandsnaam As String
Dim LeesVraag As New StreamReader(Path.GetTempPath & "110% Soft\ListViewer 1.0.0.6\Word.txt")
Dim LeesFile As New StreamReader(Path.GetTempPath & "110% Soft\ListViewer 1.0.0.6\File.txt")
Vraagnummer = LeesVraag.ReadLine()
Bestandsnaam = LeesFile.ReadLine()
LeesVraag.Close()
LeesFile.Close()
MessageBox.Show(Vraagnummer)
Dim teller As Integer = 0
Dim orderInfo = XElement.Load(Bestandsnaam)
If teller = Vraagnummer Then
VraagNummerTextBox.Text = orderInfo...<word>...<n>.Value
VraagTextBox.Text = orderInfo...<word>...<v>.Value
AntwoordTextBox.Text = orderInfo...<word>...<a>.Value
Else
teller = teller + 1
End If
End Sub
End Class
But the result isn't:
VraagTextBox.Text = testv
AntwoordTextBox.Text = testa
NummerTextBox.Text = 1
if i click on the number 2 of the listview (index = 1)
How can i fix it? -
XML output with multiple tags in one line
I have not done much XML exporting with SQL. Previously I had just been ending my SQL queries with
FOR XML RAW ('Company'), ROOT ('Companies'), ELEMENTS;
and it formatted my query nicely in an XML output. That put every column name as a tag and the cell data within the tag.
However, now the criteria has changed on me. I need to create a tag with multiple sub tags in it.
Example: <Location Floor="10" Suite="512" DoorType="Metal">
But I'll still need other tags to be normal in the XML output such as
<Address>123 Fake St</Address>
<City>Springfield</City>
<Location Floor="10" Suite="512" DoorType="Metal">
Is there any way to get this XML mixed in the output like above?
Thank you for any help.Hi, you can FOR XML PATH for a finer degree of control over your XML. Use the @ symbol to create attributes. Here's a simple example:
DECLARE @t TABLE ( rowId INT IDENTITY PRIMARY KEY, [address] VARCHAR(50), city VARCHAR(30), floor INT, suite INT, doorType VARCHAR(20) )
INSERT INTO @t VALUES
( '123 Fake St', 'Springfield', 10, 512, 'Metal' )
SELECT
[address] AS "Address",
city AS City,
[floor] AS "Location/@Floor",
suite AS "Location/@Suite",
doorType AS "Location/@DoorType"
FROM @t
FOR XML PATH ('Company'), ROOT ('Companies'), ELEMENTS; -
XML gateway with multiple XML structures??
Hi,
I have a requirement to import data using XML gateway with different XML structures. Third party system sometimes will not provide certain tags itself if there is no data for the tag like contacts in below sample xmls. In that case we need to ignore those tags (CONTACTS in below sample). As per my understanding, we must have tag in XML though it may not have any value.
We have 2 XMLs
XML1 for supplier with contacts
<SUPPLIER>
<NAMES>
<NAME1>XYZ </NAME1>
<NAME2>ABC</NAME2>
</NAMES>
<SITE>
<SITE1>XYZ </SITE1>
<SITE2>ABC</SITE2>
</SITE>
<CONTACT>
<CONTACT1>XYZ </CONTACT1>
<CONTACT2>ABC</CONTACT2>
</CONTACT>
</SUPPLIER>
XML2 for supplier without contacts
XML1
<SUPPLIER>
<NAMES>
<NAME1>XYZ1 </NAME1>
<NAME2>ABC1</NAME2>
</NAMES>
<SITE>
<SITE1>XYZ1 </SITE1>
<SITE2>ABC1</SITE2>
</SITE>
</SUPPLIER>
Can we upload data in both these xmls using only one generic dtd and xgm using XML gateway which will skip any missing tag.
Thanks
RishiHi, you can FOR XML PATH for a finer degree of control over your XML. Use the @ symbol to create attributes. Here's a simple example:
DECLARE @t TABLE ( rowId INT IDENTITY PRIMARY KEY, [address] VARCHAR(50), city VARCHAR(30), floor INT, suite INT, doorType VARCHAR(20) )
INSERT INTO @t VALUES
( '123 Fake St', 'Springfield', 10, 512, 'Metal' )
SELECT
[address] AS "Address",
city AS City,
[floor] AS "Location/@Floor",
suite AS "Location/@Suite",
doorType AS "Location/@DoorType"
FROM @t
FOR XML PATH ('Company'), ROOT ('Companies'), ELEMENTS; -
XML file with multiple records
I have an XML data file that will look something like this (repeated possibly several hundred times):
<?xml version='1.0' encoding='utf-8'?>
<A><V>Wake up to WonderWidgets!</V>
<C>Why are great</C>
</A>
<?xml version='1.0' encoding='utf-8'?>
<A>Eric</A>
When I try to parse the code using the Echo03.java sample from the website, I get the following error: END_ELM: </>org.xml.sax.SAXParseException: XML declaration may only begin entities.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3339)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3327)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:1107)
at org.apache.crimson.parser.Parser2.maybeMisc(Parser2.java:1233)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:638)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:281)
at Echo03.main(Echo03.java:60)
Is there any way (short of actually reading the file and looking for the beginning of each record) that I can get the parser to do multiple stard and end documents or at least get it to read and parse all the entries in the file?
ThanksYout file should look something like this: <
?xml version='1.0' encoding='utf-8'?>
<start>
<A><V>Wake up to WonderWidgets!</V>
<C>Why are great</C>
</A>
<A>Eric</A>
</start>
you can only have one root element ( e.g. <start> )
Maybe you are looking for
-
More Guru Winners for February 2015 in the SS DBE category and many others!
It's been a busy week that also saw the TECHNET WIKI SUMMIT 2015 Then we had the results for February's TechNet Guru competition ALSO posted! http://blogs.technet.com/b/wikininjas/archive/2015/03/19/technet-guru-february-2015.aspx Below is a summary
-
How To: TOC or LOF stored inside Document
Running FM 7.0p579 and WinXP Pro/SP2. Issue Background: EDD is well modified from original Spec. Structured doc contains two Elements, Contents and Illuslist. Each contains a list of entries - all are Hotlinked, like a Generated List in a Book File.
-
Why do i have to store each contact twice?
why do i have to store each contact on my iphone twice, once with the country code so that his name will display when i recieve messages from him and another time without the country code so that his name will display when i receive calls from him? i
-
Im trying to subtract a shape I have previously painted and scanned in from my other layers...can this be done?
-
How assign role to user during portal runtime ! after logon !
Hello everybody, I've a question. Is possible add or remove portal roles to portal user after user logon ? how ? thank you very much Stefano