如何在C#中以文字方式读取具有多个属性的xml节点?

如何在C#中以文字方式读取具有多个属性的xml节点?,c#,asp.net,xmlreader,C#,Asp.net,Xmlreader,对于最近分配给我的一个大学项目,我需要用C#创建一个酒店系统数据管理WEB应用程序,这是它从xml文件中获得的许多功能之一,所有数据都将保存在sql数据库中,因此在xml文件中,我得到了多个节点,表示sql数据库中特定表的数据,如: <Cadena> <Codigo> CA001 </Codigo> ... </Cadena> CA001 ... 好的,这不是我的问题,我的问题是我能读到这样的节点: <TipoHabitacion Ca

对于最近分配给我的一个大学项目,我需要用C#创建一个酒店系统数据管理WEB应用程序,这是它从xml文件中获得的许多功能之一,所有数据都将保存在sql数据库中,因此在xml文件中,我得到了多个节点,表示sql数据库中特定表的数据,如:

<Cadena>
<Codigo> CA001 </Codigo>
...
</Cadena>

CA001
...
好的,这不是我的问题,我的问题是我能读到这样的节点:

<TipoHabitacion Cadena="CA001" Hotel="GT001">
.....
</TipoHabitacion>

.....
我的意思是,我知道该表是“TipoHabitacion”,该表的外键是“Cadena=CA001”和“Hotel=GT001”,有了这些值,我如何区分相同文档中相同但外键不同的信息,如:

<TipoHabitacion Cadena="CA051" Hotel="GT781">
.....
</TipoHabitacion>

.....

并用这些新值保存它?

您是否在询问如何获取元素的属性?如果是,这是一个空安全解决方案:

string cadenaValue = null;
string hotelValue = null;
if (node.Attributes != null)
{
    var cadenaAttribute = node.Attributes["Cadena"];
    if (cadenaAttribute != null) 
        cadenaValue = cadenaAttribute.Value;

    var hotelAttribute = node.Attributs["Hotel"];
    if (hotelAttribute != null)
        hotelValue = hotelAttribute.Value;
}

if (cadenaValue != null)
{
    Console.WriteLine(cadenaValue);
}

if (hotelValue != null)
{
    Console.WriteLine(hotelValue);
}

我假设属性之间的分隔符是在复制到StackOverflow时转换失败?否则,您根本不使用XML…也许,但您是说“cadena”和“Hotel”是XML noce“TipoHabitation”的属性?您可以尝试使用XML-to-LINQ通过其属性值查询节点,请参阅: