Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中,如何从没有标记的xml文件中读取xml数据?_Sql_Sql Server_Xml - Fatal编程技术网

在SQL Server中,如何从没有标记的xml文件中读取xml数据?

在SQL Server中,如何从没有标记的xml文件中读取xml数据?,sql,sql-server,xml,Sql,Sql Server,Xml,我知道如何从信息以标记形式组织的文件中读取xml数据,我指的是这样的文件: <?xml version='1.0' encoding='UTF-8'?> <dataset> <Administrador> <id> 8 </id> <nombre> Nelle </nombre> <valorDocId> 8399335355 </valo

我知道如何从信息以标记形式组织的文件中读取xml数据,我指的是这样的文件:

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
    <Administrador>
        <id> 8 </id>
        <nombre> Nelle </nombre>
        <valorDocId> 8399335355 </valorDocId>
        <contrasenna> Glenn </contrasenna>
    </Administrador>
    <Administrador>
        <id> 9 </id>
        <nombre> Gayler </nombre>
        <valorDocId> 1310348693 </valorDocId>
        <contrasenna> Madonna </contrasenna>
    </Administrador>
</dataset>
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
    <Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
    <Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
但现在我需要读取一个没有标记的xml文件,至少不像上一个,xml是这样的:

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
    <Administrador>
        <id> 8 </id>
        <nombre> Nelle </nombre>
        <valorDocId> 8399335355 </valorDocId>
        <contrasenna> Glenn </contrasenna>
    </Administrador>
    <Administrador>
        <id> 9 </id>
        <nombre> Gayler </nombre>
        <valorDocId> 1310348693 </valorDocId>
        <contrasenna> Madonna </contrasenna>
    </Administrador>
</dataset>
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
    <Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
    <Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>


但是我以前使用的代码不起作用,它抛出一个错误,说我不能在列“id”中插入空值,所以我假设数据没有被读取。那么如何读取第二个文件呢?

示例

Declare @XML xml = '
<dataset>
    <Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
    <Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
'

Select id          = x.v.value('@id','int')
      ,nombre      = x.v.value('@nombre','varchar(50)')
      ,valorDocId  = x.v.value('@valorDocId','varchar(50)')
      ,contrasenna = x.v.value('@contrasenna','varchar(50)')
 From  @Xml.nodes('dataset/Administrador') x(v)
编辑-从文件中获取XML

Declare @XML xml = '
<dataset>
    <Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
    <Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
'

Select id          = x.v.value('@id','int')
      ,nombre      = x.v.value('@nombre','varchar(50)')
      ,valorDocId  = x.v.value('@valorDocId','varchar(50)')
      ,contrasenna = x.v.value('@contrasenna','varchar(50)')
 From  @Xml.nodes('dataset/Administrador') x(v)

没有一种方法可以像另一种方法一样,在不处理变量中的xml内容的情况下读取所有信息?我有一个4k行的xml文件,这样做是不正确的。顺便说一句,我需要将读取的数据插入一个名为AdministradorMy XML的表中,或者我的XML在一个文件中,我需要将它的数据插入一个缺少插入表的表中,以将其插入到我需要的表中。感谢you@FabricioCeciliano很乐意帮忙