XElement.Parse Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Carica un oggetto XElement da una stringa contenente XML, facoltativamente preservando lo spazio vuoto e mantenendo le informazioni sulla riga.
Overload
Parse(String) |
Carica un oggetto XElement da una stringa che contiene XML. |
Parse(String, LoadOptions) |
Carica un oggetto XElement da una stringa contenente XML, facoltativamente preservando lo spazio vuoto e mantenendo le informazioni sulla riga. |
Parse(String)
Carica un oggetto XElement da una stringa che contiene XML.
public:
static System::Xml::Linq::XElement ^ Parse(System::String ^ text);
public static System.Xml.Linq.XElement Parse (string text);
static member Parse : string -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String) As XElement
Parametri
Restituisce
Oggetto XElement popolato dalla stringa che contiene il codice XML.
Esempio
Nell'esempio seguente viene creata una stringa contenente XML. Analizza quindi la stringa in un XElementoggetto .
XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");
Console.WriteLine(xmlTree);
Dim xmlTree As XElement = <Root><Child></Child></Root>
Console.WriteLine(xmlTree)
Nell'esempio viene prodotto l'output seguente:
<Root>
<Child></Child>
</Root>
Commenti
Questo metodo non mantiene lo spazio vuoto. Se si vuole mantenere lo spazio vuoto nell'albero XML, usare l'overload del Parse metodo che accetta LoadOptions come parametro. Per altre informazioni, vedere Mantenere lo spazio vuoto durante il caricamento o l'analisi di XML e La conservazione dello spazio vuoto durante la serializzazione.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile rilevare eventuali eccezioni generate dai metodi di overload e dai XmlReader.Create XmlReader metodi che legge e analizzano il documento.
Vedi anche
Si applica a
Parse(String, LoadOptions)
Carica un oggetto XElement da una stringa contenente XML, facoltativamente preservando lo spazio vuoto e mantenendo le informazioni sulla riga.
public:
static System::Xml::Linq::XElement ^ Parse(System::String ^ text, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Parse (string text, System.Xml.Linq.LoadOptions options);
static member Parse : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String, options As LoadOptions) As XElement
Parametri
- options
- LoadOptions
Oggetto LoadOptions che specifica il comportamento dello spazio vuoto e se caricare l'URI di base e le informazioni sulla riga.
Restituisce
Oggetto XElement popolato dalla stringa che contiene il codice XML.
Esempio
Nell'esempio seguente viene analizzata una stringa in XElement due modi diversi: conservazione dello spazio vuoto e non conservazione dello spazio vuoto. Usa quindi una query per determinare il numero di nodi dello spazio vuoto nell'albero XML risultante.
int whiteSpaceNodes;
XElement xmlTree1 = XElement.Parse("<Root> <Child> </Child> </Root>",
LoadOptions.None);
whiteSpaceNodes = xmlTree1
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}",
whiteSpaceNodes);
XElement xmlTree2 = XElement.Parse("<Root> <Child> </Child> </Root>",
LoadOptions.PreserveWhitespace);
whiteSpaceNodes = xmlTree2
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}",
whiteSpaceNodes);
Dim whiteSpaceNodes As Integer
Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.None)
whiteSpaceNodes = xmlTree1 _
.DescendantNodesAndSelf() _
.OfType(Of XText)() _
.Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _
.Count()
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)
Dim xmlTree2 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.PreserveWhitespace)
whiteSpaceNodes = xmlTree2 _
.DescendantNodesAndSelf() _
.OfType(Of XText)() _
.Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _
.Count()
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)
Nell'esempio viene prodotto l'output seguente:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
Nell'esempio seguente vengono mantenute le informazioni sulla riga durante l'analisi della stringa.
string markup =
@"<Root>
<Child>
<GrandChild/>
</Child>
</Root>";
XElement xRoot = XElement.Parse(markup, LoadOptions.SetLineInfo);
Console.WriteLine("{0}{1}{2}",
"Element Name".PadRight(20),
"Line".PadRight(5),
"Position");
Console.WriteLine("{0}{1}{2}",
"------------".PadRight(20),
"----".PadRight(5),
"--------");
foreach (XElement e in xRoot.DescendantsAndSelf())
Console.WriteLine("{0}{1}{2}",
("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),
((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),
((IXmlLineInfo)e).LinePosition);
Dim markup As String = _
"<Root>" & Environment.NewLine & _
" <Child>" & Environment.NewLine & _
" <GrandChild/>" & Environment.NewLine & _
" </Child>" & Environment.NewLine & _
"</Root>"
Dim xRoot As XElement = XElement.Parse(markup, LoadOptions.SetLineInfo)
Console.WriteLine("{0}{1}{2}", _
"Element Name".PadRight(20), _
"Line".PadRight(5), _
"Position")
Console.WriteLine("{0}{1}{2}", _
"------------".PadRight(20), _
"----".PadRight(5), _
"--------")
For Each e As XElement In xRoot.DescendantsAndSelf()
Console.WriteLine("{0}{1}{2}", _
("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _
DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _
DirectCast(e, IXmlLineInfo).LinePosition)
Next
Nell'esempio viene prodotto l'output seguente:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Commenti
Se il valore XML di origine è rientro, l'impostazione del PreserveWhitespace flag causa options
la lettura di tutti gli spazi vuoti nel codice XML di origine. I nodi di tipo XText vengono creati per spazi vuoti significativi e insignificanti.
Se il formato XML di origine è rientro, non impostando il PreserveWhitespace flag options
, il lettore ignora tutti gli spazi vuoti insignificanti nel codice XML di origine. L'albero XML viene creato senza nodi di testo per spazi vuoti insignificanti.
Se il codice XML di origine non è rientro, l'impostazione del PreserveWhitespace flag in options
non ha alcun effetto. Spazi vuoti significativi vengono ancora mantenuti e non sono presenti spazi vuoti insignificanti che potrebbero causare la creazione di nodi di testo più spazi vuoti.
Per altre informazioni, vedere Mantenere lo spazio vuoto durante il caricamento o l'analisi di XML e La conservazione dello spazio vuoto durante la serializzazione.
L'impostazione non avrà alcun effetto durante l'analisi SetBaseUri da un Stringoggetto .
Può XmlReader avere informazioni sulla riga valide o meno. Se si imposta SetLineInfo, le informazioni sulla riga verranno impostate nell'albero XML dalle informazioni sulla riga segnalate da XmlReader.
Se si imposta il SetLineInfo flag, si verifica una penalità delle prestazioni.
Le informazioni sulla riga sono accurate immediatamente dopo il caricamento del documento XML. Se si modifica l'albero XML dopo il caricamento del documento, le informazioni sulla riga potrebbero diventare senza significato.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile rilevare eventuali eccezioni generate dai metodi di overload e dai XmlReader.Create XmlReader metodi che legge e analizzano il documento.