【问题标题】:how can i literaly read in C# a xml node with multiple atributes?我如何才能在 C# 中读取具有多个属性的 xml 节点?
【发布时间】:2015-10-09 05:45:32
【问题描述】:

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

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

好的,这不是我的问题,我的问题和问题是我可以读取这样的节点:

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

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

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

并用这些新值保存它?

【问题讨论】:

  • 我假设属性之间的“,”分隔符是在复制到 StackOverflow 时翻译失败?否则,您根本就不会使用 XML...
  • 也许吧,但你是说“cadena”和“Hotel”是xml noce“TipoHabitacion”的属性?
  • 您可以尝试使用 XML to LINQ 通过属性值查询节点,参考:stackoverflow.com/questions/18891206/…

标签: c# asp.net xmlreader


【解决方案1】:

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

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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多