【问题标题】:Identifying a certain node in XML识别 XML 中的某个节点
【发布时间】:2011-01-06 08:17:10
【问题描述】:
<enviNFe versao="1.10">
  <idLote>000000000000094</idLote> 
  <NFe>
    <infNFe Id="NFe35090254517628000198550010000000011870030005" versao="1.10">
    <!-- ... content ... -->
    </infNFe>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <!-- ... content ... -->
    </Signature>
  </NFe>
</enviNFe>

我有这个 XML 文件,如何获取 ID 属性?这个问题不是关于“如何在 xml 中获取属性”,我找到了几个解决方案,但不知何故我无法解决这个特定节点中的这个特定属性。

我可以在“infNF”内的表中获取信息,并将其加载到数据集中并使用以下代码:

ds.Tables(Table).Rows(row)(node)

有没有类似的方法来做我想要得到这个属性的事情?

(您可以用 C# 或 VB.NET 回答)

【问题讨论】:

    标签: c# xml vb.net dataset


    【解决方案1】:

    您尝试过 XQuery 吗?

     var node = element.SelectSingleNode("//infNFe[@id='...']")
    

    从 XML 的外观来看,您似乎在处理巴西 NFe,对吧?


    编辑添加

    您可以找到有关 XQuery 的更多信息here

    一旦你越过括号......你会发现它非常简单。

    【讨论】:

    • 是的,就是这样,我应该如何读取 xml 来执行此操作?我从未使用过 xquery
    • XmlDocument slideDoc = new XmlDocument(nt); slideDoc.Load("filePath"); XmlNode titleNode = slideDoc.SelectSingleNode("//p:sp//p:ph[@type='title' or @type='ctrTitle']", nsManager);
    • @Paulo Santos tem algum contato pra podermos conversar? é bom ter contatos de desenvolvedores =)
    【解决方案2】:

    如果您有 .Net 3.5,请使用 linq,请参阅 How to select a specific node with LINQ-to-XML

    【讨论】:

      【解决方案3】:
      ds.Tables("infNFe").Rows(0).Item(2)
      

      这就是我用过的,谢谢你们!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多