Hej! känner inte till nåt färdigt verktyg, men låter som om det skulle vara en relativt smal sak att fixa ett litet skript som gör det.. Kan du inte läsa in det i SQL direkt? OPENXML är en utmärkt funktion för det. Det är något sådant jag letar efter. Nedanstående exempel ur hjälpen till OPENXML Jag som inte är skript-programmerare behöver något som någon annan utvecklat.  @doc kan vara av datatypen ntext (~2Gb) Här är ett exempel på hur man kan importera en XML-fil mha OPENXML. Knåpade ihop ett VB-script som läser en xml-fil och skriver till txt-fil. <b>SQL har (mig veterligen) ingen text-import funktion. Det får man skriva själv... </b> Då menar jag ju språket (T-SQL) egentligen. naturligtvis går det att importera text till en SQL Server.Konvertera XML till TXT
    
    
Jag har en XML-fil som innehåller 190.000 poster av exakt likadan struktur (samma fält).
Den vill jag konvertera till en semikolon-separerad textfil för vidare inläsning i en tabell i
SQLServer 2000. Känner Ni till något bra verktyg (helst gratis) som kan göra detta???Sv: Konvertera XML till TXT
    
    Sv: Konvertera XML till TXT
    
    
/mickeSv:  Konvertera XML till TXT
    
    
leder dock till två frågor:
- Hur kan man skicka xml-filen direkt till @doc utan att klippa in den som i exemplet?
- @doc är här deklarerat till max 1000 tecken. Min fil är på 47 MB. Kan man deklarera så mycket?
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
   <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
      <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
      <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
   </Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
   <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">
      <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
   </Order>
</Customer>
</ROOT>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT    *
FROM       OPENXML (@idoc, '/ROOT/Customer',1)
            WITH (CustomerID  varchar(10),
                  ContactName varchar(20))Sv:  Konvertera XML till TXT
    
    Sv:   Konvertera XML till TXT
    
    
SQL har (mig veterligen) ingen text-import funktion. Det får man skriva själv...
/mickeSv:   Konvertera XML till TXT
    
    
http://www.sqlxml.org/faqs.aspx?faq=39
Om du inte vill använda VB eller liknande för att läsa XML-filen, kan du ju göra ett DTS-paket som läder in hela filen till en TEXT-kolumn och därefter använda den kolumnen i OPENXML.
/PeterSv:  Konvertera XML till TXT
    
    
Exempel: Book.xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<Root>
    <Book>
        <Title>Invandrarna</Title>
        <Author>W. Moberg</Author>
    </Book>
    <Book>
        <Title>Utvandrarna</Title>
        <Author>W. Moberg</Author>
    </Book>
    <Book>
        <Title>En programmerares bekännelser</Title>
        <Author>B. Gates</Author>
    </Book>
</Root>
Scriptet ser då ut så här:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objXMLFile = objFSO.OpenTextFile("C:\Book.xml", 1)
Set objTXTFile = objFSO.CreateTextFile ("C:\Book.txt", 1)
strTag = ""				'Lagrar upp en tagg
strValue = ""			'Lagrar upp ett värde
Do Until objXMLFile.AtEndOfStream
    strChar = objXMLFile.Read(1)		'Läs ett tecken
    If strChar = "<" Then		'Här börjar en tagg
        strTyp = "Tag"
        strTag = ""
    End If
    If strChar = ">" then		'Här slutar en tagg
        strTyp = "Value"
        strTag = strTag + strChar		'Haka på >-tecknet
        'Är det en slut-tagg för ett fält fångas värdet
        If strTag = "</Title>" Then strTitle = strValue
        If strTag = "</Author>" Then strAuthor = strValue
        'Är det slut-tagg för posten skapas en utrad
        If strTag = "</Book>" Then
            strLine = strTitle+";"+strAuthor
            objTXTFile.WriteLine (strLine)
        End If
        strValue = ""			'Påbörja nytt värde	
        intValueChars = 0		'Nolla värde-teckenräknare
    End If
    If strTyp = "Tag" Then		'Vi håller på med tagg
        strTag = strTag + strChar		'Addera till taggen
    End If
    If strTyp = "Value" Then		'Vi håller på med värde
        intValueChars = intValueChars + 1	'Öka värde-teckenräknaren
        If intValueChars > 1 Then		'För att slippa <-tecknet i värdet
            strValue = strValue + strChar	'Addera till värdet
        End If
    End If
Loop
Wscript.Echo "Klart!"
Utdatafilen Book.txt:
Invandrarna;W. Moberg
Utvandrarna;W. Moberg
En programmerares bekännelser;B. GatesSv:    Konvertera XML till TXT
    
    
njaoenjae , du kan ju lägga upp en odbc koppling mot en textfil , (i kontrollpanelen)
och sedan använda importfunktionen i enterprisemanagern för att importera från din odbc koppling till sql databasen..
//RogerSv:     Konvertera XML till TXT
    
    
Ursäkta min luddighet :)
/micke