【问题标题】:Getting value of specific name tag获取特定名称标签的值
【发布时间】:2012-12-04 11:04:10
【问题描述】:

我有这个 xml:

<ns0:data>
<ns0:row>
    <ns0:column>
        <ns0:name>F_DOCNUMBER</ns0:name>
        <ns0:value>617271</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>DOCDATE</ns0:name>
        <ns0:value>15685</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>DOCTYPE</ns0:name>
        <ns0:value>1,999,152</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>INSUREDIDNUMBER</ns0:name>
        <ns0:value>310794763</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>BATCHNAME</ns0:name>
        <ns0:value>L1000024831310001</ns0:value>
    </ns0:column>
</ns0:row>
<ns0:row>
    <ns0:column>
        <ns0:name>F_DOCNUMBER</ns0:name>
        <ns0:value>617284</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>DOCDATE</ns0:name>
        <ns0:value>15685</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>DOCTYPE</ns0:name>
        <ns0:value>1,999,403</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>INSUREDIDNUMBER</ns0:name>
        <ns0:value>310794763</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>BATCHNAME</ns0:name>
        <ns0:value>L1000024831320002</ns0:value>
    </ns0:column>
</ns0:row>
<ns0:row>
    <ns0:column>
        <ns0:name>F_DOCNUMBER</ns0:name>
        <ns0:value>617283</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>DOCDATE</ns0:name>
        <ns0:value>15685</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>DOCTYPE</ns0:name>
        <ns0:value>1,999,235</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>INSUREDIDNUMBER</ns0:name>
        <ns0:value>310794763</ns0:value>
    </ns0:column>
    <ns0:column>
        <ns0:name>BATCHNAME</ns0:name>
        <ns0:value>L1000024831320001</ns0:value>
    </ns0:column>
</ns0:row>
</ns0:data>

我需要获取名称为“DOCTYPE”的所有值标签。

稍后我需要检查并更改它们的值。

我怎样才能得到这个节点?

【问题讨论】:

标签: java xml dom xpath


【解决方案1】:

您可以使用LINQ 到XML 来获取所需的节点

XDocument doc = XDocument.Load("YourXmlFilePath");
XNamespace ns = "YourNameSpacegoesHere";

var query = from d in doc.Descendants(ns + "column")
            where d.Element(ns + "name").Value.ToString() == "DOCTYPE"                  
            select d;

现在query 拥有您所需的所有节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2011-07-17
    相关资源
    最近更新 更多