I'm trying to iterate through a set of nodes and then edit/delete
specific attributes using XPathNodeIterat or. Adding attributes is no
problem.
My first question is how do I delete an attribute using an
XPathNodeIterat or? Or should I be using something else?
In the sample that follows:
1. Grab all "Page" nodes.
2. Loop through all the nodes.
3. delete the "lastModifi ed" attribute.
4. Will eventually just want to edit the "lastModifi ed" attribute.
C#3/x
Sample method:
public void test()
{
XPathDocument doc = new XPathDocument( "pathToXML" );
XPathNavigator nav = doc.CreateNavig ator();
XPathNodeIterat or iterator = nav.Select( "//Section/Page" );
while( iterator.MoveNe xt() )
{
XPathNavigator node = iterator.Curren t;
string lastModifiedAtt ribute =
node.GetAttribu te( "lastModifi ed", "" );
// Actions will vary, but will consist of:
// 1. add attribute
// 2. delete attribute
// 3. edit attribute
}
}
Sample XML:
<?xml version="1.0"?>
<SiteMap>
<Section>
<Page nav="topic1" lastModified="2 0081005" />
<Page nav="topic2" lastModified="2 0081001" />
</Section>
<Section>
<Page nav="topic3" lastModified="2 0081002" />
<Section>
<Page nav="topic4" lastModified="2 0081004" />
<Section>
<Page nav="topic5" lastModified="2 0081003" />
<Page nav="topic6" lastModified="2 0081009" />
</Section>
</Section>
</Section>
<Section>
<Page nav="topic7" lastModified="2 0081012" />
<Page nav="topic8" lastModified="2 0081015" />
<Page nav="topic9" lastModified="2 0081007" />
</Section>
</SiteMap>
Thanks in advance!
::k::
specific attributes using XPathNodeIterat or. Adding attributes is no
problem.
My first question is how do I delete an attribute using an
XPathNodeIterat or? Or should I be using something else?
In the sample that follows:
1. Grab all "Page" nodes.
2. Loop through all the nodes.
3. delete the "lastModifi ed" attribute.
4. Will eventually just want to edit the "lastModifi ed" attribute.
C#3/x
Sample method:
public void test()
{
XPathDocument doc = new XPathDocument( "pathToXML" );
XPathNavigator nav = doc.CreateNavig ator();
XPathNodeIterat or iterator = nav.Select( "//Section/Page" );
while( iterator.MoveNe xt() )
{
XPathNavigator node = iterator.Curren t;
string lastModifiedAtt ribute =
node.GetAttribu te( "lastModifi ed", "" );
// Actions will vary, but will consist of:
// 1. add attribute
// 2. delete attribute
// 3. edit attribute
}
}
Sample XML:
<?xml version="1.0"?>
<SiteMap>
<Section>
<Page nav="topic1" lastModified="2 0081005" />
<Page nav="topic2" lastModified="2 0081001" />
</Section>
<Section>
<Page nav="topic3" lastModified="2 0081002" />
<Section>
<Page nav="topic4" lastModified="2 0081004" />
<Section>
<Page nav="topic5" lastModified="2 0081003" />
<Page nav="topic6" lastModified="2 0081009" />
</Section>
</Section>
</Section>
<Section>
<Page nav="topic7" lastModified="2 0081012" />
<Page nav="topic8" lastModified="2 0081015" />
<Page nav="topic9" lastModified="2 0081007" />
</Section>
</SiteMap>
Thanks in advance!
::k::
Comment