簡體   English   中英

XDocument找不到特定元素

[英]XDocument not finding specific element

我有一個自定義函數,它通過名稱獲取元素。

public static XElement GetElement(this XElement element, string elementName)
{
    if (!element.HasElements)
        throw new HasNoElementsException("");

    return element.Element(element.GetDefaultNamespace() + elementName) ?? 
        throw new ElementNotFoundException("");
}

該功能正常工作,但是我在這里舉例說明一個特定的xml文件有問題:

<?xml version="1.0" encoding="ISO-8859-1"?>
<elementA xmlns="http://www.link1.com.br">
    <elementB>
        ...other elements
    </elementB>
    <elementC xmlns="http://www.link2.com.br" schemaLocation="http://www.link1.com.br file.xsd">
        <elementD>
            ...other elements
        </elementD>
    </elementC>
</elementA>

當我嘗試在xml中獲取elementB時,它可以工作,但是當我嘗試獲取elementC時,將引發ElementNotFoundException

對不起,我的英語不好,巴西在這里! :)

public static XElement GetElement(this XElement element, string elementName)
{
    if (!element.HasElements)
        throw new HasNoElementsException("");

    return element.Elements().FirstOrDefault(e => e.Name.LocalName.Equals(elementName)) ??
        throw new ElementNotFoundException("");
}

這將是一個解決方案,它無需指定默認名稱空間即可獲取具有指定名稱的第一個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM