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.
Caricare un oggetto XElement da una stringa contenente codice XML, mantenendo facoltativamente gli spazi vuoti e mantenendo le informazioni sulla riga.
Overload
| Nome | Descrizione |
|---|---|
| Parse(String) |
Caricare un oggetto XElement da una stringa contenente XML. |
| Parse(String, LoadOptions) |
Caricare un oggetto XElement da una stringa contenente codice XML, mantenendo facoltativamente gli spazi vuoti e mantenendo le informazioni sulla riga. |
Parse(String)
- Origine:
- XElement.cs
- Origine:
- XElement.cs
- Origine:
- XElement.cs
- Origine:
- XElement.cs
- Origine:
- XElement.cs
Caricare un oggetto XElement da una stringa contenente 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
Valori restituiti
Oggetto XElement popolato dalla stringa che contiene XML.
Esempio
Nell'esempio seguente viene creata una stringa contenente xml. Analizza quindi la stringa in un oggetto XElement.
XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");
Console.WriteLine(xmlTree);
Dim xmlTree As XElement = <Root><Child></Child></Root>
Console.WriteLine(xmlTree)
In questo esempio viene generato l'output seguente:
<Root>
<Child></Child>
</Root>
Commenti
Questo metodo non mantiene lo spazio vuoto. Se si desidera mantenere lo spazio vuoto nell'albero XML, utilizzare 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 Mantenere lo spazio vuoto durante la serializzazione.
La funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Vedi anche
Si applica a
Parse(String, LoadOptions)
- Origine:
- XElement.cs
- Origine:
- XElement.cs
- Origine:
- XElement.cs
- Origine:
- XElement.cs
- Origine:
- XElement.cs
Caricare un oggetto XElement da una stringa contenente codice XML, mantenendo facoltativamente gli spazi vuoti 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 le informazioni sull'URI di base e sulla riga.
Valori restituiti
Oggetto XElement popolato dalla stringa che contiene XML.
Esempio
Nell'esempio seguente viene analizzata una stringa in XElement due modi diversi: mantenere lo spazio vuoto e non conservare lo spazio vuoto. Usa quindi una query per determinare il numero di nodi di 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)
In questo esempio viene generato 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
In questo esempio viene generato l'output seguente:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Commenti
Se il formato XML di origine è rientrato, l'impostazione del PreserveWhitespace flag in options fa sì che il lettore legga tutti gli spazi vuoti nel codice XML di origine. I nodi di tipo XText vengono creati per spazi vuoti significativi e non significativi.
Se il rientro del codice XML di origine non viene impostato, l'impostazione del PreserveWhitespace flag in options fa sì che il lettore ignori tutti gli spazi vuoti non significativi nel codice XML di origine. L'albero XML viene creato senza nodi di testo per spazi vuoti non significativi.
Se il codice XML di origine non è rientrato, l'impostazione del PreserveWhitespace flag in options non ha alcun effetto. Gli spazi vuoti significativi vengono ancora mantenuti e non sono presenti intervalli di spazi vuoti non significativi che potrebbero causare la creazione di più nodi di testo dello spazio vuoto.
Per altre informazioni, vedere Mantenere lo spazio vuoto durante il caricamento o l'analisi di XML e Mantenere lo spazio vuoto durante la serializzazione.
L'impostazione SetBaseUri non avrà alcun effetto durante l'analisi da un oggetto String.
Può XmlReader avere o meno informazioni sulla riga valide. Se si imposta SetLineInfo, le informazioni sulla riga verranno impostate nell'albero XML dalle informazioni sulla riga segnalate XmlReaderda .
Se si imposta il SetLineInfo flag, si verifica una riduzione 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 inutili.
La funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.