Ich versuche, das Parsen von XML in MATLAB zu tun, die JavaSE Paket verwendet org.w3c.domgetChildNodes() gibt Text statt NodeList
I wie
eine XML-Struktur haben<?xml version="1.0" encoding="utf-8"?>
<tada>
<Filters>
<filter id="1" name="name1" renderType="type1">
<bool name="par1" value="false"/>
<bool name="par2" value="false"/>
<int name="par3" value="200"/>
<int name="par4" value="1"/>
<float name="par5" value="2"/>
<bool name="par6" value="false"/>
<int name="par7" value="1"/>
</filter>
<filter id="6" name="name2" renderType="type2">
<bool name="par1" value="false"/>
<bool name="par2" value="false"/>
<int name="par3" value="200"/>
<int name="par4" value="1"/>
<float name="par5" value="2"/>
<bool name="par6" value="false"/>
<int name="par7" value="1"/>
<int name="par8" value="1"/>
<array name="par9" row="2" col="2" >
5.0162 0.96182
0.22294 0.96356
</array>
</filter>
</Filters>
</tada>
ich versuche, Zugang zu bekommen, lassen Sie sagen Attribut renderType des Elements Filter mit name = "na me2"
Ich versuche, die folgende
config = xmlread(xmlFileName);
section = config.getDocumentElement().getElementsByTagName('Filters').item(0);
filters = section.getChildNodes();
// filters = section.getElementsByTagName('filter');
for i = 0:filters.getLength()-1
filter = filters.item(i);
if strcmp(filter.getAttribute('name'), 'name2')
filter.setAttribute('renderType', 'graph2D');
end
end
ich zu tun erwarten, dass Filter sollte ein NodeList (wie Dokumentation sagt http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/package-summary.html?browser=F1help), aber es wird zurückgegeben als Text (der nur Leerzeichen enthält).
Wenn ich
filters = section.getElementsByTagName('filter');
dann schreibe ich gewünschten NodeList bekommen, aber das Problem ist, dass diese Art und Weise ungeeignet ist. Weil ich Knoten durch den Wert Name Eigenschaft auswählen muss.
Können Sie mir helfen? Was ich falsch mache?
Vielen Dank für Ihre Hilfe.
Vielen Dank. Aber sollte nicht .getChildNodes() mir irgendeine Knotenliste zurückgeben? Und wie bekomme ich die Liste der Elemente, ohne den Tag-Namen anzugeben? – Physman
Nochmals vielen Dank. Ich habe verstanden, was du meinst. Obwohl ** filters ** nicht NodeList ist, kann ich .item (...) normalerweise verwenden. Ich sollte nur den resultierenden Typ eines ** Filter ** Knotens überprüfen. – Physman
Ich denke, Sie könnten den Fehler machen, "Knoten" und "Element" zu verwenden, als wären sie das Gleiche. –