Ich habe eine XML, von der ich nur bestimmte Attribute nicht alle analysieren möchten. Ich habe 100 von Attributen und das von mir zur Verfügung gestellte XML ist ein Beispiel mit wenigen Attributen . Ich möchte die Namen der Attribute explizit angeben und ihre Werte analysieren. Bsp: Ich möchte die Werte der Attributnamen PersonN, VerifiedHuman analysieren In meiner Logik möchte ich die Werte durch Angabe von Attributnamen wie <Name>PersonN</Name>
analysieren und den Wert analysieren Das Ergebnis sollte ein CSV sein.Parsen der XML durch Angabe der Attributnamen
<InterConnectResponse>
<SchemaVersion>2.0</SchemaVersion>
<ConsumerSubjects>
<ConsumerSubject subjectIdentifier="Primary">
<DataSourceResponses>
<RiskViewProducts>
<RiskViewAttribResponse>
<Attributes>
<Attribute>
<Name>PersonN</Name>
<Value>3</Value>
</Attribute>
<Attribute>
<Name>VerifiedHuman</Name>
<Value>2</Value>
</Attribute>
<Attribute>
<Name>CurrAddrBlockIndex</Name>
<Value>0.61</Value>
</Attribute>
------ Many More Attributes ---------
</Attributes>
</RiskViewAttribResponse>
</RiskViewProducts>
</DataSourceResponses>
</ConsumerSubject>
</ConsumerSubjects>
</InterConnectResponse>
Logic Ich verwende: (Ich weiß nicht, wie die Attributnamen angeben und ihre Werte erhalten) In diesem Code str3 wird die obige xml.
using (XmlReader read = XmlReader.Create(new StringReader(str3)))
{
bool isValue = false;
while (read.Read())
{
if (read.NodeType == XmlNodeType.Element && read.Name == "Value")
{
isValue = true;
}
if (read.NodeType == XmlNodeType.Text && isValue)
{
output.Append((output.Length == 0 ? "" : ", ") + read.Value);
isValue = false;
}
}
}
Erwartete Ausgabe:
3, 2
Bitte beachten Sie, dass das, was Sie "Attribute" nennen, nicht die Attribute sind, die normalerweise in XML genannt werden. Sie haben vielleicht keine Kontrolle darüber, aber es lohnt sich zumindest, sich darüber im Klaren zu sein, dass es verwirrend ist. –
Was möchten Sie tun, wenn mehrere 'ConsumerSubject' Elemente vorhanden sind? –