webForumDet fria alternativet

Hur får jag informationen till min sida?

XML

36 svar · 2 617 visningar · startad av oskars · sida 2 av 2

Frågan, av oskars

Tjenare, nu ska vi se om jag kan förklara mitt problem så att ni förstår. Jag har köpt en tjänst som gör att jag får fram olika data från ett företags databas. Det funkar så här: Jag har ett formulär på min ASP-sida som postar till deras sokmotor.asmx. När jag postat formuläret så får jag fram en XML-sida med den datan jag fått fram i sökningen. Men hur sjutsingen kan jag ta denna XML-koden o

Läs frågan i sin helhet →
Medlem sedan nov. 20014 054 inlägg
#21

oskars skrev:

GRYMT!!! Tack återigen!

Kan man kort och gott säga att det här är ett sätt att ladda in en XML-fil från en annan server in till min egna server, så att jag själv kan redigera XML-filen så som jag vill?

EDIT:

Jag får följande fel nu:

ASP Kod: ASP 0177
Fel nummer: -2147221005
Kategori: Serverobjekt
Rad: 40
Kolumn: -1
Beskrivning: Server.CreateObject misslyckades
Mer detaljerad: Ogiltig klassträng %>

Rad: 40 = Set xmlDoc = Server.CreateObject ("msxml2.domdocument.4.0")
Rad: 41 = xmlDoc.loadXML xmltext

Mjo.. det kan man säga.. ett underlättande sätt att arbeta mot Webservice när man använder sig av hederliga ASP.

Dock nedan stående problem upplevde inte jag, pröva med denna då:
Msxml2.DOMDocument.3.0 istället för .4.0 ..

OM den kan skapa den.

Medlem sedan nov. 20051 317 inlägg
#22

Ja tack! Det fungerade bättre!

Men jag har problem med ÅÄÖ och andra specialtecken. Sökningen funkar inte när det är specialtecken helt enkelt... får felmeddelande om att det är fel tecken.

Ett ogiltigt tecken påträffades i textinnehållet. Det gick inte att behandla resursen
Medlem sedan nov. 20014 054 inlägg
#23

oskars skrev:

Ja tack! Det fungerade bättre!

Men jag har problem med ÅÄÖ och andra specialtecken. Sökningen funkar inte när det är specialtecken helt enkelt... får felmeddelande om att det är fel tecken.

Ett ogiltigt tecken påträffades i textinnehållet. Det gick inte att behandla resursen

Så det fungerar när det inte är åäö och vissa special tecken?

Då var vi ett steg närmare påvägen mot målet.

Skall ge mig en liten funderare under frukosten..

Medlem sedan nov. 20051 317 inlägg
#24

Fredde Mannen skrev:

Så det fungerar när det inte är åäö och vissa special tecken?

Då var vi ett steg närmare påvägen mot målet.

Skall ge mig en liten funderare under frukosten..

Hehe, tack :) Det funkar om jag kör Replace(string,"Ä","ae") osv... men det är ju inte så kul!

Medlem sedan nov. 20014 054 inlägg
#25

oskars skrev:

Hehe, tack :) Det funkar om jag kör Replace(string,"Ä","ae") osv... men det är ju inte så kul!

Då har du denna sak som kan hjälpa på vägen... funkade för mig i alla fall

Om detta är filen som inkluderar webservice.asp så se till att detta är överst i filen, syftar på codepage delarna som är nytt.

<% @CodePage = 65001 %>
<!--#include virtual="/webservice.asp"-->
<% Response.CodePage = 28591 %>

Orsaken till problemet var är att xml-dokumentet förmodligen är UTF-8, så den ovanstående koden för hela filen till UTF-8 vilket borde plocka bort problemet och ge oss en fin text som: Fredrik Malmström

Tjo hej..

Medlem sedan nov. 20051 317 inlägg
#26

Jävlar! Nu händer det grejer. Tack som fan!

Intressant det här! Ska kolla lite mer :)

Medlem sedan nov. 20051 317 inlägg
#27

Jävlar vad snyggt du gjort det! Tack!! Du har verkligen gjort det så att jag fattar vad som händer och hur det funkar :)

Det lustiga är nu när jag försöker göra min stilmall.

Jag får ibland flera sökresultat... och då förstår jag att man kan loopa ut med följande kod:


    <xsl:for-each select="/">
    <tr>      
      <th align="left"><xsl:value-of select="SearchResult/FirstName" /></th>
      <th align="left"><xsl:value-of select="SearchResult/Lastname" /></th>
      <th align="left"><xsl:value-of select="SearchResult/Address" /></th>
      <th align="left"><xsl:value-of select="SearchResult/ZipCode" /></th>
      <th align="left"><xsl:value-of select="SearchResult/City" /></th>
      <th align="left"><xsl:value-of select="SearchResult/PersonNumber" /></th>
    </tr>
    </xsl:for-each>

XML-filen jag får från servern:

<?xml version="1.0" encoding="utf-8"?>
<SearchResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.domain.se">
  <HitCount>2</HitCount>
  <PersonNumber>
    <string>123456</string>
    <string>123456</string>
  </PersonNumber>
  <FirstName>
    <string>Emanuel</string>
    <string>Per</string>
  </FirstName>
  <LastName>
    <string>Sunding</string>
    <string>Larssno</string>
  </LastName>
  <GivenName>
    <string />
    <string>Per</string>
  </GivenName>
  <Address>
    <string>Gatan 2</string>
    <string>Hyttan 93</string>
  </Address>
  <ZipCode>
    <string>12525</string>
    <string>12552</string>
  </ZipCode>
  <City>
    <string>Stockholm</string>
    <string>Karlstad</string>
  </City>

Jag tror att jag har gjort rätt, men det skrivs inte ut något.

Vart har jag gjort fel tror du?

Medlem sedan nov. 20014 054 inlägg
#28

Skall kolla igenom det på en stund.. måste göra en annan sak.. men om någon annan hinner före så .. :)

Medlem sedan nov. 20014 054 inlägg
#29

oskars skrev:

Jävlar vad snyggt du gjort det! Tack!! Du har verkligen gjort det så att jag fattar vad som händer och hur det funkar :)

Det lustiga är nu när jag försöker göra min stilmall.

Jag får ibland flera sökresultat... och då förstår jag att man kan loopa ut med följande kod:


    <xsl:for-each select="/">
    <tr>      
      <th align="left"><xsl:value-of select="SearchResult/FirstName" /></th>
      <th align="left"><xsl:value-of select="SearchResult/Lastname" /></th>
      <th align="left"><xsl:value-of select="SearchResult/Address" /></th>
      <th align="left"><xsl:value-of select="SearchResult/ZipCode" /></th>
      <th align="left"><xsl:value-of select="SearchResult/City" /></th>
      <th align="left"><xsl:value-of select="SearchResult/PersonNumber" /></th>
    </tr>
    </xsl:for-each>

XML-filen jag får från servern:

<?xml version="1.0" encoding="utf-8"?>
<SearchResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.domain.se">
  <HitCount>2</HitCount>
  <PersonNumber>
    <string>123456</string>
    <string>123456</string>
  </PersonNumber>
  <FirstName>
    <string>Emanuel</string>
    <string>Per</string>
  </FirstName>
  <LastName>
    <string>Sunding</string>
    <string>Larssno</string>
  </LastName>
  <GivenName>
    <string />
    <string>Per</string>
  </GivenName>
  <Address>
    <string>Gatan 2</string>
    <string>Hyttan 93</string>
  </Address>
  <ZipCode>
    <string>12525</string>
    <string>12552</string>
  </ZipCode>
  <City>
    <string>Stockholm</string>
    <string>Karlstad</string>
  </City>

Jag tror att jag har gjort rätt, men det skrivs inte ut något.

Vart har jag gjort fel tror du?

Mmm.. det hade varit enkelt att loppa ut innehållet och fått allt snyggt tillfixat om xml-dokumentet hade haft en annan uppbyggnad, tex:

<SearchResult>
 <Person>
    <PersonNumber>1111111</PersonNumber>
    <FirstName>Fredde</FirstName>
    <LastName>Mannen</LastName>
    ...
 </Person>
 <Person>
    ...
 </Person>
</SearchResult>

Då hade man med relativt väldigt lite kod kunna fått ut snyggt:

Personnr: 1111111
Förnamn: Fredde
Efternamn: Mannen
-------------------------
...

Men nu är det ju inte så... så nu är det lite mer komplicerat att snabbt och enkelt få det på ett sådant sätt efter som varje element (ex FirstName) har barnen string, där varje string ordningen tillhör varandra.

Är säkert mycket trött nu.. men jag finner det mycket komplicerat för att mina kunskaper i XSL och XPath/XQuery skall vara till nytta för att snyggt lösa problemet.. baah.. :x får se om man kan komma runt det i värsta fall.

Medlem sedan nov. 20051 317 inlägg
#30

Tänkte väl att det skulle bli problem med den där dumma utskrivningen :( Har försökt här själv, men misslyckats och varit tvungen att göra om. Det verkar bli så mkt mer avancerat när den skrivs ut så där?

Medlem sedan nov. 20051 317 inlägg
#31

Jag kan få det presenterat som ett dataset om det är intressant?

Men det här verkar vara för dom som kör ASP.NET och jag kör vanliga ASP och har aldrig kör .NET någon gång.. Men det ser ju ut som en XML-fil (och är väl även en sådan) så det borde väl fungera?

Så här kan jag få det presenterat:

<?xml version="1.0" encoding="utf-8"?>
<SearchResultDs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="domain.se">
  <HitCount>2</HitCount>
  <SearchResult>
    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="SearchPerson">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="PersonNumber" type="xs:string" minOccurs="0" />
                  <xs:element name="FirstName" type="xs:string" minOccurs="0" />
                  <xs:element name="LastName" type="xs:string" minOccurs="0" />
                  <xs:element name="GivenName" type="xs:string" minOccurs="0" />
                  <xs:element name="Address" type="xs:string" minOccurs="0" />
                  <xs:element name="ZipCode" type="xs:string" minOccurs="0" />
                  <xs:element name="City" type="xs:string" minOccurs="0" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
      <NewDataSet xmlns="">
        <SearchPerson diffgr:id="SearchPerson1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
          <PersonNumber>12345678912</PersonNumber>
          <FirstName>Svalle</FirstName>
          <LastName>Svelander</LastName>
          <GivenName>Ken</GivenName>
          <Address>Gatan 24</Address>
          <ZipCode>12345</ZipCode>
          <City>Hessle</City>
        </SearchPerson>
        <SearchPerson diffgr:id="SearchPerson2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
          <PersonNumber>12345678912</PersonNumber>
          <FirstName>Ragnvald</FirstName>
          <LastName>Vander</LastName>
          <GivenName>Arne</GivenName>
          <Address>Gatan 59</Address>
          <ZipCode>12345</ZipCode>
          <City>Byn</City>
        </SearchPerson>
      </NewDataSet>
    </diffgr:diffgram>
  </SearchResult>
</SearchResultDs>

Men hjälper det oss något?

Medlem sedan nov. 20051 317 inlägg
#32

Finns det någon som har nån aning? :q

Jag kommer inte så långt med min XSL-fil:


<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>Mina personnummer</h2>
    <table border="1">
    <tr bgcolor="#9acd32">
      <th align="left">Förnamn</th>
      <th align="left">Efternamn</th>
      <th align="left">Adress</th>
      <th align="left">Postnummer</th>
      <th align="left">Ort</th>
      <th align="left">Personnummer</th>
    </tr>
    <xsl:for-each select="NewDataSet/SearchPerson">
    <tr>      
      <th align="left"><xsl:value-of select="FirstName" /></th>
      <th align="left"><xsl:value-of select="LastName" /></th>
      <th align="left"><xsl:value-of select="Address" /></th>
      <th align="left"><xsl:value-of select="ZipCode" /></th>
      <th align="left"><xsl:value-of select="City" /></th>
      <th align="left"><xsl:value-of select="PersonNumber" /></th>
    </tr>
    </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
Medlem sedan nov. 20014 054 inlägg
#33
<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>Mina personnummer</h2>
    <table border="1">
    <tr bgcolor="#9acd32">
      <th align="left">Förnamn</th>
      <th align="left">Efternamn</th>
      <th align="left">Adress</th>
      <th align="left">Postnummer</th>
      <th align="left">Ort</th>
      <th align="left">Personnummer</th>
    </tr>
    <xsl:for-each select="//*[local-name(.)='SearchPerson']">
    <tr>      
      <th align="left"><xsl:value-of select="FirstName" /></th>
      <th align="left"><xsl:value-of select="LastName" /></th>
      <th align="left"><xsl:value-of select="Address" /></th>
      <th align="left"><xsl:value-of select="ZipCode" /></th>
      <th align="left"><xsl:value-of select="City" /></th>
      <th align="left"><xsl:value-of select="PersonNumber" /></th>
    </tr>
    </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Denna bör fungera alldeles utmärkt på det senaste xml-dokumentet som du visade på dvs. få det presenterat som ett dataset.

Medlem sedan nov. 20051 317 inlägg
#34

Underbart :D Tack så jättemycket!!! Snyggt jobbat! Tack!! =) Det uppskattas som fan!

Jag lyckades på egen hand med hjälp av Google lista ut hur man fick in värdena in i ett formulär!!!! =) Tack som fan återigen!!!

      	<![CDATA[<]]>input type="text" name="</xsl:text><xsl:value-of select="FirstName"/><xsl:text>" value="</xsl:text><xsl:value-of select="FirstName"/><xsl:text disable-output-escaping="yes">"></xsl:text>
Medlem sedan nov. 20014 054 inlägg
#35

Vad bra! Hoppas det blir bra i slutändan!

Tjolahej tjolahopp!

Medlem sedan juni 200032 967 inlägg
#36

Ett sätt jag tycker är lite snyggare är:

<input type="text">
     <xsl:attribute name="name">
          <xsl:value-of select="FirstName"/>
     </xsl:attribute>
     <xsl:attribute name="value">
          <xsl:value-of select="FirstName"/>
     </xsl:attribute>
</input>

Radbrytningarna och indenteringarna i min kod är bara för läsbarhetens skull - jag skulle nog skrivit allt på samma rad i xsl-dokumentet. Whitespace på fel ställe inuti html-taggar är inte så bra. :)

Medlem sedan nov. 20051 317 inlägg
#37

Fredde Mannen skrev:

Vad bra! Hoppas det blir bra i slutändan!

Tjolahej tjolahopp!

:) Det lär bli grymmast nu! :bire

@nders skrev:

Ett sätt jag tycker är lite snyggare är:

<input type="text">
     <xsl:attribute name="name">
          <xsl:value-of select="FirstName"/>
     </xsl:attribute>
     <xsl:attribute name="value">
          <xsl:value-of select="FirstName"/>
     </xsl:attribute>
</input>

Radbrytningarna och indenteringarna i min kod är bara för läsbarhetens skull - jag skulle nog skrivit allt på samma rad i xsl-dokumentet. Whitespace på fel ställe inuti html-taggar är inte så bra. :)

Aaah, tack så mkt :) Ja, det är viktigt att få koden att se fin ut också... och vem gillar whitespace :o Tack för tipset! :bire

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)